Запуск нескольких эпох в клиентах federated-tensorflow

#tensorflow #tensorflow2.0 #tensorflow-federated

#tensorflow #tensorflow2.0 #tensorflow-федеративный

Вопрос:

Есть ли какой-либо способ в federated-tensorflow заставить клиентов обучать модель для нескольких эпох в их наборе данных? В руководствах я обнаружил, что решением может быть изменение набора данных путем запуска dataset.repeat(NUMBER_OF_EPOCHS), но почему я должен изменять набор данных?

Ответ №1:

tf.data.Dataset Это способ настройки TF2. Возможно, полезно подумать о коде как об изменении «конвейера данных», а не самого «набора данных».

https://www.tensorflow.org/guide/data и, в частности, раздел https://www.tensorflow.org/guide/data#processing_multiple_epochs могут быть полезными указателями.

На высоком уровне 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.