Executando várias épocas em clientes de federated-tensorflow
Existe alguma maneira no tensorflow federado de fazer os clientes treinarem o modelo para várias épocas em seu conjunto de dados? Descobri nos tutoriais que uma solução poderia ser modificar o conjunto de dados executando dataset.repeat (NUMBER_OF_EPOCHS), mas por que devo modificar o conjunto de dados?
Respostas
Esta tf.data.Dataseté a maneira do TF2 de configurar isso. Pode ser útil pensar no código como uma modificação do "pipeline de dados" em vez do próprio "conjunto de dados".
https://www.tensorflow.org/guide/data e particularmente a seção https://www.tensorflow.org/guide/data#processing_multiple_epochs podem ser dicas úteis.
Em um alto nível, a tf.dataAPI configura um fluxo de exemplos. Repetições (várias épocas) desse fluxo também podem ser configuradas.
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.