TFF:.repeat() 的必要性是什么

问题描述

在阅读tensorflow federated for image classification 的这篇tutorial时,我发现.repeat(),我想了解这个预处理函数的必要性,尤其是当我增加{{1}中的数字时},模拟需要很多时间。那么,如果有必要制作.repeat(),我们可以选择多少个epoch?

解决方法

教程中对 tf.data.Dataset.repeat 的调用不是绝对必要的。它是一个超参数,使客户端执行更多本地优化(通过重复本地数据集采取更多步骤),从而降低通信频率。实际上,每个联合学习“回合”都会取得更多进展,因为客户正在做更多的工作。

不使用任何重复意味着客户只训练一个时期。在本教程中,这可能会导致模型训练看起来更慢(以每轮为基础),并且每轮完成的小批量步骤更少。

大量的 epoch 会产生负面影响。在后面的几轮中,当模型大部分收敛时,如果本地数据与全局数据分布发散,客户可能会对其本地数据进行过拟合。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...