fedprox tensorflow federated (TypeError: cannot unpack non-i


iterative_process = tff.learning.algorithms.build_unweighted_fed_prox( 
    model_fn,
    proximal_strength= 0.5,
    client_optimizer_fn=lambda: tf.keras.optimizers.SGD(learning_rate=0.01),
    server_optimizer_fn=lambda: tf.keras.optimizers.SGD(learning_rate=1.0))
state, metrics = iterative_process.next(state, federated_train_data)
print('round  1, metrics={}'.format(metrics))

在执行第1轮时,抛出(TypeError: cannot unpack non-iterable LearningProcessOutput object)。

当我们使用fedag时,它工作得很好,但不使用fedprox

iterative_process.next返回不可迭代的LearningProcessOutput,如错误所示。

可以用

代替
output = iterative_process.next(...)
state = output.state
metrics = output.metrics

或者直接使用output

相关内容

最新更新