【问题标题】:How to plot Histogram summary for delta weight in Federated Tensorflow?如何在 Federated Tensorflow 中绘制增量权重的直方图摘要?
【发布时间】:2020-02-18 16:15:12
【问题描述】:

我正在分析我在 Tensorflow 中与 FedAvg 联合实施的一种方法。我需要为与服务器通信的每个客户端的增量权重创建一个直方图。每个客户端分别在simulation/federated_avaraging.py 中调用,但问题是我无法在其中调用以下 API。 tf.summary.histogram()。任何帮助将不胜感激。

【问题讨论】:

    标签: python tensorflow tensorflow-federated


    【解决方案1】:

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

    如果您想使用 TF 操作,我建议您使用 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 列表,表示所有客户端的训练结果。

    【讨论】:

    • 谢谢 keith,我一直在实施方案 3 并收到此错误。 TypeError:无法将序列打包到类型 ,仅支持 AnonymousTuple 的结构(收到类型为 [AnonymousTuple([('conv2d/kernel',
    • 嗨,阿米尔,您介意用堆栈跟踪为此打开一个单独的问题吗?如果没有更多的上下文,很难诊断。谢谢!
    猜你喜欢
    • 2019-03-19
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    • 2019-11-20
    • 1970-01-01
    • 1970-01-01
    • 2022-11-05
    • 2018-06-22
    相关资源
    最近更新 更多