如何加载 ServerState.optimizer_state 以继续在 Tensorflow Federated 中训练

How to load ServerState.optimizer_state to continue training in Tensorflow Federated

TFF 有没有办法保存和加载类似于模型权重的优化器状态。对于模型权重,有 ModelWeights.assign_weights_to()tff.learning.state_with_new_model_weights() 函数,有没有办法保存和加载优化器状态,​​尤其是在使用 SGD 以外的服务器端优化器时。

我找不到任何东西来保存和加载优化器的状态。

这应该可以通过 TFF tff.simulation.FileCheckpointManager. In particular, the usage in Google Research's federated repo was originally written to support restarting from checkpoints when using learning rate scheduling and adaptive optimization on the server 实现,对于正确恢复优化器状态至关重要的应用程序。

只要您的 tff.templates.IterativeProcess returns 处于适当的优化器状态,​​只需使用开箱即用的 FileCheckpointManager 即可。

借鉴 Keith 的回答:检查点管理器在 Google 的 federated research repository. It has been upstreamed to TFF (see it on GitHub here 中不再可用。

您可以通过 tensorflow-federated-nightly pip 包访问它,也可以通过克隆存储库来访问它。

代码本质上委托给 tf.saved_model.save,因此您也可以简单地使用它。