如何在联邦Tensorflow中绘制增量权重的直方图摘要?

2024-09-30 18:26:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在分析我在Tensorflow中与FedAvg联合实现的一个方法。我需要有一个每个客户端的delta权重的柱状图,它被传送到服务器。每个客户机在simulation/federated_avaraging.py中分别调用,但问题是我不能在那里调用以下APItf.summary.histogram()。任何帮助都将不胜感激


Tags: 方法py服务器客户端客户机tensorflowsummarysimulation
1条回答
网友
1楼 · 发布于 2024-09-30 18:26:05

在TFF中,TensorFlow表示“局部计算”;因此,如果需要一种跨客户机检查内容的方法,则需要首先通过TFF聚合所需的值,或者在本机python中检查返回的值

如果您想使用TF ops,我建议您使用tff.federated_collect内在函数来“收集”服务器上您想要的所有值,然后federated_map使用TF函数获取这些值并生成所需的可视化效果

如果您希望在Python级别工作,这里有一个简单的选项(这是我将采用的方法):简单地返回来自tff.federated_computation的客户机培训结果;当您调用此计算时,这将具体化这些结果的Python列表,并且您可以根据需要将其可视化。这大致可以大致大致上是这样的:

@tff.federated_computation(...)
def train_one_round(...):
  ...
  trained_clients = run_training(...)
  new_model = update_global_model(trained_clients,...)
  return new_model, trained_clients

在本例中,此函数将返回一个元组,其第二个元素是一个Python列表,表示所有客户端的培训结果

相关问题 更多 >