运行 federated-tensorflow 客户端中的多个时期

Running multiple epochs in clients of federated-tensorflow

federated-tensorflow 中是否有任何方法可以让客户在其数据集上针对多个时期训练模型?我在教程中发现一个解决方案可以通过 运行 dataset.repeat(NUMBER_OF_EPOCHS) 修改数据集,但是为什么要修改数据集?

tf.data.Dataset 是 TF2 的设置方式。将代码视为修改“数据管道”而不是“数据集”本身可能很有用。

https://www.tensorflow.org/guide/data and particularly the section https://www.tensorflow.org/guide/data#processing_multiple_epochs 可以是有用的指针。

在 high-level 处,tf.data API 设置了示例流。也可以配置该流的重复(多个纪元)。

dataset = tf.data.Dataset.range(5)
for x in dataset:
  print(x) # prints 0, 1, 2, 3, 4 on separate lines.

repeated_dataset = dataset.repeat(2)
for x in repeated_dataset:
  print(x) # same as above, but twice

shuffled_repeat_dataset = dataset.shuffle(
  buffer_size=5, reshuffle_each_iteration=True).repeat(2)
for x in repeated_dataset:
  print(x) # same as above, but twice, with different orderings.