`tensorflow_federated.learning.from_keras_model()` 不再包含 'dummy_batch' 关键字?

`tensorflow_federated.learning.from_keras_model()` no longer contains 'dummy_batch' keyword?

我 运行 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 版本中,我们不再需要提供虚拟批次?通常的 tff 工作管道是否已更改?

P.S。将 tensorflow_federated 降级到版本 0.13.1 有效。

这是正确的; dummy_batch 关键字在 this commit 中被弃用,取而代之的是 input_spec,以获得额外的灵活性。

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

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