Results 17 comments of Zing22

您好,感谢您的留言。其实你可以把每一步的计算节点都输出来看看,应该能看到shape是否和你计算的一致

@The-MinGo 你好,感谢你的关注,我也只是学生仔不是什么大佬hhh。我按照我的理解回答一下这两个问题: 1. “随机选取参与者”是依照Google的文章里的一个假设:并非所有的参与者都会随时在线(available),例如手机作为参与者是有可能关机、断网的 2. `0.12`没有什么深层理由,一般是作为一个可调超参,用于模拟不同现实场景(比如手机场景可能是0.12,工业集群场景可能是0.99)

@The-MinGo 具体在哪篇文章我也记不清了,可能是“Federated Optimization: Distributed Optimization Beyond the Datacenter”,也可能是在这篇博客里:http://ai.googleblog.com/2017/04/federated-learning-collaborative.html 我现在做的方向是联邦传输过程的压缩、训练模式,也还在头秃中...

@The-MinGo 你应该是对的,是一个bug,过几天我改一改再上传。感谢!

@The-MinGo 你好,还是非常感谢你的关注。我分点回答一下这几个问题: 1. 我目测不足`batch_size`的时候`perm0`的值应该是18行给定的,长度应该会和`batch_size`一致。不过我还没测试过不确定对不对。 2. `client_vars_sum`里的元素是`np.array`,是mutable object。而你举的例子是`int`,是immutable object。我理解的最小样例是这样的: ![image](https://user-images.githubusercontent.com/8966971/101737320-a983f100-3aff-11eb-90ca-4f5a3c2ec895.png) 3. 同上,而且这个`load()`是写到显存里的,应该没有问题 再次感谢你的提问,我最近会找个时间检查一遍代码的。谢谢!

@The-MinGo 是这个原因,更深层的原因可能是每个设备上的数据分布不同,专业名词是non-IID,也是联邦研究里的一个核心问题。

您好!梯度指的是loss对各个参数的偏导数,一般等价于用SGD Optimizer求导loss。如果是Adam等Optimizer,会对求导原始梯度进行修正,可能会影响联邦训练的效果,这个应该有相关研究。

你用的是pytorch吗,这个接口我不太清楚。但梯度值的shape和参数shape是一致的,你可以把值都输出来看看。

可以先搞个简单模型调试一下,比如全部初始化为0.5的DNN,训练一个batch,输出参数和梯度,马上就知道哪个是哪个了。

同样的问题! 操作步骤: 1. 删除两个或以上中文文字 2. 在中文输入法状态下,输入任意字符一次 3. 无任何显示,直到第二次按下键才有 输入法样式:微软拼音 版本:中文简体 操作系统:Windows 版本:10专业版