<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ldxcsdn的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ldxcsdn</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ldxcsdn]]></copyright><item><title><![CDATA[创新实训（十二）项目总结]]></title><link>https://blog.youkuaiyun.com/ldxcsdn/article/details/125240190</link><guid>https://blog.youkuaiyun.com/ldxcsdn/article/details/125240190</guid><author>ldxcsdn</author><pubDate>Sat, 11 Jun 2022 23:20:30 +0800</pubDate><description><![CDATA[这学期的项目实训中我们组选择的课题是分布式异步联邦学习平台。联邦学习主要体现在不同用户之前的数据集不共享，通过共享模型参数参与聚合间接达到同数据集共享达到的相近效果；分布式是将训练和聚合分别放在不同机器上运行，充分利用硬件资源加速整个训练过程；同时这里的异步训练是完全的，不同用户的运算速度和参与时间是不同的，为了去解决这个问题，我们采取的方式是设置权重，根据参与用户进行的聚合轮次，为其分配不同的权重，以平衡用户上传的模型参数对全局模型参数的影响。
我们平台的主要功能是给予用户发布和参与联邦学习任务的平台以及]]></description><category></category></item><item><title><![CDATA[创新实训（十一）开发过程中的一些bug汇总]]></title><link>https://blog.youkuaiyun.com/ldxcsdn/article/details/125240104</link><guid>https://blog.youkuaiyun.com/ldxcsdn/article/details/125240104</guid><author>ldxcsdn</author><pubDate>Sat, 11 Jun 2022 23:19:40 +0800</pubDate><description><![CDATA[这是对开发过程中一些比较有意义、难缠的bug的记录和总结。
修改bug查阅的文档、博客至少上百篇，也算是血泪教训了。
记录在此，一是证明自己的开发过程，二是总结汇总，避免重复的错误再犯。注意规则名字不要包含诸如“name”这种关键字，否则会报错
2、input输入框图标不显示的问题
参考下面这个，用插槽的方式解决
 elementPlus使用icon图标不显示解决方法_小黑ya_的博客-优快云博客_element icon无法显示
Icon 图标 | Element Plus (gitee.io)
或者直]]></description><category></category></item><item><title><![CDATA[创新实训（十）高级界面美化]]></title><link>https://blog.youkuaiyun.com/ldxcsdn/article/details/125157094</link><guid>https://blog.youkuaiyun.com/ldxcsdn/article/details/125157094</guid><author>ldxcsdn</author><pubDate>Tue, 07 Jun 2022 00:15:23 +0800</pubDate><description><![CDATA[前端的界面基本完成之后，我们需要继续开始界面的高级美化工作。

]]></description><category></category></item><item><title><![CDATA[创新实训（九）Vuex的引入及编写]]></title><link>https://blog.youkuaiyun.com/ldxcsdn/article/details/124981251</link><guid>https://blog.youkuaiyun.com/ldxcsdn/article/details/124981251</guid><author>ldxcsdn</author><pubDate>Thu, 26 May 2022 11:18:18 +0800</pubDate><description><![CDATA[Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 + 库。它采用集中式存储管理应用的所有组件的状态，并以相应的规则保证状态以一种可预测的方式发生变化。这里我在纠结是采用VUEX还是传统的session，查阅了一下资料：
详见：https://www.jianshu.com/p/bc2d2429a693首先，理解vuex的作用
每一个 Vuex 应用的核心就是 store（仓库）。“store”基本上就是一个容器，它包含着你的应用中大部分的状态 (state)。
Vuex 和单纯的全局对象有以下]]></description><category></category></item><item><title><![CDATA[创新实训（八）任务相关界面编写]]></title><link>https://blog.youkuaiyun.com/ldxcsdn/article/details/124981204</link><guid>https://blog.youkuaiyun.com/ldxcsdn/article/details/124981204</guid><author>ldxcsdn</author><pubDate>Thu, 26 May 2022 11:16:56 +0800</pubDate><description><![CDATA[本文主要介绍与任务相关的界面的编写，具体而言，分为展示任务列表、新建任务、个人任务等。此外，引入了echarts，以进行训练过程的可视化展示，也会在本文介绍其使用。这一部分可以认为是该系统最重要的一部分。从后端获取到数据之后，跳转到所有任务展示界面，这里其实比较常规，就是一个表格的实现和美化：

创建任务

用一个卡片包裹的表单form。
表单当中包括了常见的数据选择形式：
单选框，计数器，输入框，文件上传，按钮等等…
echarts的使用
折线图主要用来展示数据项随着时间推移的趋势或变化。
ECharts]]></description><category></category></item><item><title><![CDATA[创新实训（七）侧边栏及前端路由编写]]></title><link>https://blog.youkuaiyun.com/ldxcsdn/article/details/124981133</link><guid>https://blog.youkuaiyun.com/ldxcsdn/article/details/124981133</guid><author>ldxcsdn</author><pubDate>Thu, 26 May 2022 11:13:35 +0800</pubDate><description><![CDATA[本周的前端工作主要是侧边栏的实现以及前端路由的编写。
主要使用了elementplus自带的el-menu.
官方文档：https://element-plus.gitee.io/zh-CN/component/menu.html#left-and-right
垂直菜单，可内嵌子菜单。
通过el-menu-item-group组件可以实现菜单进行分组，分组名可以通过title属性直接设定，也可以通过具名 slot 来设定。
编写起来还是比较容易的，注意子菜单如何编写。
代码如下：
至于如何加图标，这里也是用]]></description><category></category></item><item><title><![CDATA[创新实训（六）登陆注册界面编写]]></title><link>https://blog.youkuaiyun.com/ldxcsdn/article/details/124981098</link><guid>https://blog.youkuaiyun.com/ldxcsdn/article/details/124981098</guid><author>ldxcsdn</author><pubDate>Thu, 26 May 2022 11:11:54 +0800</pubDate><description><![CDATA[登录注册界面是我认为最难写的界面之一。原因在于：
1、它不是很规律，自由发挥的空间很大，同时想绘制出比较雅观的界面是比较困难的。需要用到大量的CSS。
2、登录注册不止有界面，还有输入框规则的制定
3、获取到数据，发送给后端的编写。首先展示一下最后的成果：

我觉得还是比较美观的。可以看到就是左边插图右半边输入框的结构，比例协调。这个还是比较容易的，其实是两幅图，一副左下角的蓝色纯色图，另一幅是从插画网站找到的主题色接近的图。拼接好位置。这里要用到CSS。
右侧输入框
这个用了elementplus的输入框]]></description><category></category></item><item><title><![CDATA[创新实训（五）主页面组件编写]]></title><link>https://blog.youkuaiyun.com/ldxcsdn/article/details/124775529</link><guid>https://blog.youkuaiyun.com/ldxcsdn/article/details/124775529</guid><author>ldxcsdn</author><pubDate>Sat, 14 May 2022 22:30:57 +0800</pubDate><description><![CDATA[接下来进入了本周的前端开发工作，本周主要完成主页面的编写。主页面的预期效果是美观、简介，内容主要是以下几个：
顶栏有问候语，根据时间自动变化；
然后是基本信息，介绍了我们的项目信息；
然后是一副满足美化效果的插画；
然后是训练记录界面；
最后是一个美观的走马灯，可以向客户展示图片信息等等。
问候语根据计算得到的日期生成，然后是头像；
这里用到了计算属性，用来计算日期：
基本信息
这里主要就是一个card卡片包裹着一个el-description界面，里面进行内容填充。
描述页我抽成了一个组件，如下：
插画
]]></description><category></category></item><item><title><![CDATA[创新实训（四）前端框架大改以及顶栏的绘制]]></title><link>https://blog.youkuaiyun.com/ldxcsdn/article/details/124656325</link><guid>https://blog.youkuaiyun.com/ldxcsdn/article/details/124656325</guid><author>ldxcsdn</author><pubDate>Sun, 08 May 2022 22:37:24 +0800</pubDate><description><![CDATA[中期的界面总体来说还是比较简陋的，因此有必要下定决心大刀阔斧的改造一番，达到理想的前端展示效果，这样才能吸引用户。总体架构如图：

src文件夹下，assets存放静态资源，components是组件，router是路由，styles是静态CSS资源，view是展示的组件，剩下的略。这里可以选用element plus自带的布局组件，但是我用了一下感觉还是不太灵活，决定还是自己写，然后结合CSS控制相对布局。
总体就是分成顶端，侧边栏，主体区域这三部分。
体现在layout.vue当中比较明显：
头部的绘制]]></description><category></category></item><item><title><![CDATA[创新实训（三）初版界面绘制以及可视化的实现]]></title><link>https://blog.youkuaiyun.com/ldxcsdn/article/details/124387080</link><guid>https://blog.youkuaiyun.com/ldxcsdn/article/details/124387080</guid><author>ldxcsdn</author><pubDate>Sun, 24 Apr 2022 17:02:54 +0800</pubDate><description><![CDATA[基本上是采用了顶栏、侧边栏、内容区三个部分的经典设计。背景加了图片。可以看到主要分成以下几个部分：顶端是一个状态栏，分成初始化、训练模型、训练完成三个状态，再往下是三个按钮，单选框。然后就是一个表格，用来表示训练的轮次，以及相应的精确度展示，再往下是一个折线图。折线图使用的是第三方库echarts。
官网的介绍：一个基于 JavaScript 的开源可视化图表库。
官网：https://echarts.apache.org/handbook/zh/get-started/

折线图样式的修改
折线图中折线的]]></description><category></category></item><item><title><![CDATA[创新实训（二）前期准备]]></title><link>https://blog.youkuaiyun.com/ldxcsdn/article/details/124238120</link><guid>https://blog.youkuaiyun.com/ldxcsdn/article/details/124238120</guid><author>ldxcsdn</author><pubDate>Sun, 17 Apr 2022 22:22:28 +0800</pubDate><description><![CDATA[由于基本是从零开始，我花了三周左右的时间自学和基本掌握了前端的技巧，这里简要介绍一下我的前端学习历程：首先是HTML+CSS+JavaScript的前端基础三件套的学习，这里我推荐B站狂神说JAVA这个老师的系列课程。
狂神说HTML+CSS学习笔记
【狂神说Java】JavaScript学习笔记
这两个笔记总结的比较全面。然后是VUE的学习。
Vue (读音 /vjuː/，类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是，Vue 被设计为可以自底向上逐层应用。Vue 的核心库]]></description><category></category></item><item><title><![CDATA[创新实训（一）开题]]></title><link>https://blog.youkuaiyun.com/ldxcsdn/article/details/124183852</link><guid>https://blog.youkuaiyun.com/ldxcsdn/article/details/124183852</guid><author>ldxcsdn</author><pubDate>Thu, 14 Apr 2022 22:43:45 +0800</pubDate><description><![CDATA[联邦机器学习(Federated machine learning/Federated Learning)，又名联邦学习，联合学习，联盟学习。联邦机器学习是一个机器学习框架，能有效帮助多个机构在满足用户隐私保护、数据安全和政府法规的要求下，进行数据使用和机器学习建模。联邦学习作为分布式的机器学习范式,可以有效解决数据孤岛问题,让参与方在不共享数据的基础上联合建模,能从技术上打破数据孤岛,实现AI协作。谷歌在2016年提出了针对手机终端的联邦学习,微众银行AI团队则从金融行业实践出发,关注跨机构跨组织的大数据]]></description><category></category></item><item><title><![CDATA[SEAL全同态加密开源库(十八) 总结]]></title><link>https://blog.youkuaiyun.com/ldxcsdn/article/details/122183144</link><guid>https://blog.youkuaiyun.com/ldxcsdn/article/details/122183144</guid><author>ldxcsdn</author><pubDate>Tue, 28 Dec 2021 00:14:08 +0800</pubDate><description><![CDATA[前言
2021SC@SDUSC
2021-12-28
时光飞逝，今天是12月28日，也是软件工程实践这门课验收的时间。我们持续了一学期的SEAL全同态加密开源库-源码分析，也就到此为止了。该写一篇总结。
成果总结
通过小组合作的方式，完成了微软SEAL全同态加密开源库的编译安装、运行、源码分析、示例代码分析。我完成了编译安装说明2篇，源码分析15篇，理论知识补充1篇。
编译安装说明方面，我对SEAL库的最新3.7版本成功编译安装运行，鉴于网上搜到的说明博客都是针对旧版本，这在全网应该还是对3.7新版本的首篇]]></description><category></category></item><item><title><![CDATA[SEAL全同态加密开源库(十七)同态加密-理论知识整理补充]]></title><link>https://blog.youkuaiyun.com/ldxcsdn/article/details/122182888</link><guid>https://blog.youkuaiyun.com/ldxcsdn/article/details/122182888</guid><author>ldxcsdn</author><pubDate>Tue, 28 Dec 2021 00:00:38 +0800</pubDate><description><![CDATA[2021SC@SDUSC
2021-12-27
前言
对SEAL库的源码分析基本也接近尾声了，我反复提到过，全同态加密除了对代码能力有要求外，对于理论知识的掌握程度也有很高的要求，因此在我的博客里也一直在穿插着理论知识的介绍、补充。本篇，我们从宏观的角度，整理补充一下全同态加密所需的理论知识。以期在后续的学习中能够不断温故而知新。
群同构–第一同构定理
这里理论知识的补充，参考了博客https://blog.youkuaiyun.com/qq_41545715?type=blog
博主系统的整理总结了密码学设计的代数、]]></description><category></category></item><item><title><![CDATA[SEAL全同态加密开源库(十六)performance-性能]]></title><link>https://blog.youkuaiyun.com/ldxcsdn/article/details/122181152</link><guid>https://blog.youkuaiyun.com/ldxcsdn/article/details/122181152</guid><author>ldxcsdn</author><pubDate>Mon, 27 Dec 2021 21:48:45 +0800</pubDate><description><![CDATA[2021SC@SDUSC
2021-12-27
前言
本篇开始我将讨论SEAL中performance.cpp的代码实现，这一部分实现了对SEAL的性能测度。
源码分析
主要分析void bfv_performance_test(SEALContext context)。
先是初始化以及打印一些参数。
    chrono::high_resolution_clock::time_point time_start, time_end;

    print_parameters(context);
    ]]></description><category></category></item><item><title><![CDATA[SEAL全同态加密开源库(十五) rotation-源码浅析]]></title><link>https://blog.youkuaiyun.com/ldxcsdn/article/details/122180791</link><guid>https://blog.youkuaiyun.com/ldxcsdn/article/details/122180791</guid><author>ldxcsdn</author><pubDate>Mon, 27 Dec 2021 21:23:03 +0800</pubDate><description><![CDATA[2021SC@SDUSC
2021-12-27
前言
本篇开始我将讨论SEAL中rotation.cpp的代码实现。
简介
BFV方案(使用BatchEncoder)和CKKS方案都支持对加密数字进行native计算。除了slot-wise计算外，还可以循环地旋转加密向量。
代码分析
void example_rotation_bfv()
先是和前文类似的设置一些参数。
    print_example_banner("Example: Rotation / Rotation in BFV");

   ]]></description><category></category></item><item><title><![CDATA[SEAL全同态加密开源库(十四) encoders-源码浅析]]></title><link>https://blog.youkuaiyun.com/ldxcsdn/article/details/122163346</link><guid>https://blog.youkuaiyun.com/ldxcsdn/article/details/122163346</guid><author>ldxcsdn</author><pubDate>Sun, 26 Dec 2021 23:59:51 +0800</pubDate><description><![CDATA[2021SC@SDUSC
2021-12-26
前言
前几篇我们讨论了SEAL对于BFV、CKKS的实现。本篇开始我将开始讨论SEAL中encoders.cpp代码实现。
背景
在“1 _bfv_basics。我们展示了如何使用BFV方案执行一个非常简单的计算。计算以明文模为参数，仅利用一个BFV明文多项式的系数。这种方法有两个值得注意的问题:
(1)实际应用中一般采用整数或实数算法，而不是模运算;
(2)我们只使用了明文多项式的一个系数。这是非常浪费的，因为明文多项式很大，而且在任何情况下都将全部加密。
]]></description><category></category></item><item><title><![CDATA[SEAL全同态加密开源库(十三) CKKS-源码浅析]]></title><link>https://blog.youkuaiyun.com/ldxcsdn/article/details/122162467</link><guid>https://blog.youkuaiyun.com/ldxcsdn/article/details/122162467</guid><author>ldxcsdn</author><pubDate>Sun, 26 Dec 2021 23:43:57 +0800</pubDate><description><![CDATA[2021SC@SDUSC
2021-12-26
前言
这是SEAL全同态加密开源库分析报告的第13篇，我们继续上一篇的CKKS源码分析。
代码分析
现在x3_encryption与x1_encryption处于不同的级别，这阻止我们将它们相乘来计算x3。
我们可以简单地将x1_encrypted切换到模数转换链中的下一个参数。然而，由于我们仍然需要将x3，乘以PI(plain_coeff3)，所以我们先计算PI*x，然后将它与x2相乘，得到PI *x3。最后，我们计算PI *x  并将其从280缩放到接近2]]></description><category></category></item><item><title><![CDATA[SEAL全同态加密开源库(十二) CKKS-源码浅析]]></title><link>https://blog.youkuaiyun.com/ldxcsdn/article/details/122032650</link><guid>https://blog.youkuaiyun.com/ldxcsdn/article/details/122032650</guid><author>ldxcsdn</author><pubDate>Sun, 19 Dec 2021 23:59:23 +0800</pubDate><description><![CDATA[2021SC@SDUSC
2021-12-19
前言
前两篇我们讨论了SEAL对于BFV的实现。本篇开始我将开始讨论SEAL对于CKKS的实现。
照例我会先补充理论知识，然后分析源码native/examples/_ckks_basis.cpp文件。当然注意，本文的目的并非深入探究CKKS原理，而是力求帮助开发者在完全不懂原理的情况下，快速构建CKKS工程，并掌握基本的使用技巧。
CKKS简介
CKKS算法是2017年论文《Homomorphic Encryption for Arithmetic of A]]></description><category></category></item><item><title><![CDATA[SEAL全同态加密开源库(十一) BFV-源码浅析(2)]]></title><link>https://blog.youkuaiyun.com/ldxcsdn/article/details/121895677</link><guid>https://blog.youkuaiyun.com/ldxcsdn/article/details/121895677</guid><author>ldxcsdn</author><pubDate>Sun, 12 Dec 2021 23:49:31 +0800</pubDate><description><![CDATA[2021SC@SDUSC
2021-12-12
前言
从本篇开始，接上一篇的BFV分析，这里我们继续分析BFV源码。争取本篇结束战斗。
与之前的工作相比，这些代码显得更具整体性，也能更好体现出SEAL的工作原理以及流程，算是对前面的集大成者了，因此很有分析的必要。
BFV-2
本篇我们将继续分析examples/1_bfv_basics.cpp。看一看SEAL对于bfv是如何实现的。
先看整体的运行效果：
来自example.cpp，输入1即可得到BFV方案的运行示例。
Microsoft SEAL ver]]></description><category></category></item></channel></rss>