Exécution de plusieurs époques dans les clients de federated-tensorflow

Oct 05 2020

Existe-t-il un moyen dans le federated-tensorflow de faire en sorte que les clients entraînent le modèle pour plusieurs époques sur leur ensemble de données? J'ai trouvé sur les tutoriels qu'une solution pourrait être de modifier l'ensemble de données en exécutant dataset.repeat (NUMBER_OF_EPOCHS), mais pourquoi devrais-je modifier l'ensemble de données?

Réponses

1 ZacharyGarrett Oct 05 2020 at 22:14

C'est tf.data.Datasetla manière dont TF2 le met en place. Il peut être utile de penser que le code modifie le "pipeline de données" plutôt que le "jeu de données" lui-même.

https://www.tensorflow.org/guide/data et en particulier la section https://www.tensorflow.org/guide/data#processing_multiple_epochs peuvent être des pointeurs utiles.

À un niveau élevé, l' tf.dataAPI met en place un flux d'exemples. Les répétitions (plusieurs époques) de ce flux peuvent également être configurées.

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.