在 TensorFlow Federated 中使用 update_struct 函数时出错

Error using update_struct function in TensorFlow Federated

我正在尝试从 TensorFlow Federated GitHub 存储库 运行 Minimal Stand-Alone Implementation of Federated Averaging,但在 server_update 函数中收到以下错误:

AttributeError: 模块 'tensorflow_federated.python.common_libs.structure' 没有属性 'update_struct'

我有一些旧的 TensorFlow Federated 代码使用 tff.utils 包中的 update_state 函数代替 update_struct() 但根据 GitHub 上的提交这个包裹现在是空的。我使用的是 TensorFlow Federated 版本 0.18.0,我在尝试 Google CoLab 时也遇到了同样的问题。

我的问题是如何解决这个错误?

谢谢,感谢任何帮助。

我假设您遇到了您描述的错误 here

0.18版本好像没有这个符号。您可以依赖夜间版本 (pip install tensorflow-federated-nightly),或修改该行以直接构造新对象,而不是使用 update_struct 帮助程序。也就是说,链接命令可以更改为:

return ServerState(model_weights,
                   server_optimizer.variables(),
                   server_state.round_num + 1))