0

我在https://colab.research.google.com/github/tensorflow/federated/blob/v0.13.1/docs/tutorials/federated_learning_for_image_classification.ipynb上运行了 tensorflow 联合教程代码。我收到了这个错误

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-17-d5336a451ad0> in <module>()
      2     model_fn,
      3     client_optimizer_fn=lambda: tf.keras.optimizers.SGD(learning_rate=0.02),
----> 4     server_optimizer_fn=lambda: tf.keras.optimizers.SGD(learning_rate=1.0))

2 frames
<ipython-input-16-7b97120f96c2> in model_fn()
      7       dummy_batch=sample_batch,
      8       loss=tf.keras.losses.SparseCategoricalCrossentropy(),
----> 9       metrics=[tf.keras.metrics.SparseCategoricalAccuracy()])

TypeError: from_keras_model() got an unexpected keyword argument 'dummy_batch'

提供的笔记本更新tensorflow_federated到最新版本,因此 tff 版本为 0.14.0。那么在 0.14.0 版本中,我们不再需要喂 dummy batch 了吗?通常的 tff 工作管道是否发生了变化?

PS 降级tensorflow_federated到 0.13.1 版有效。

4

1 回答 1

1

这是对的; 该dummy_batch关键字在此提交中已弃用,以支持input_spec,以获得额外的灵活性。

有几种方法可以获得input_spec,包括直接从要输入模型的数组或张量中计算它,但最简单的是访问模型将在其上训练element_spec的关联的属性。tf.data.Dataset

至于 colab 本身的链接,看起来当 TFF 作为其今天发布的一部分更新其链接时,它忘记v在 GitHub 上标记提交时包含。链接现已更新,应该会将您带到与 0.14.0 一起使用的 colab 版本。

于 2020-05-19T03:38:52.067 回答