【问题标题】:TFF: What is difference between two type?TFF:两种类型有什么区别?
【发布时间】:2021-02-24 15:59:44
【问题描述】:

collected_output=tff.federated_collect(client_outputs)。 详细代码请参考这个question

我的问题是照片上标记为红色的部分之间的区别。就 FL 算法而言,我认为 client_outputs 是单个客户端的输出,collected_outputSequenceType,因为每个 client_outputs 都是组合的。它是否正确?如果我的猜测是正确的,member 是一组具有client_outputs 的个人客户成员吗?

【问题讨论】:

    标签: tensorflow-federated


    【解决方案1】:

    术语可能有点棘手。 client_outputs 不完全是“单个客户端的输出”,它仍然代表 所有 客户端输出,但它们不能单独寻址。重要的是,TFF 区分数据存在(“放置”)在客户端,它没有被传达。 collected_outputs 在某种意义上是所有单个客户端输出的流,尽管 placement 已通过 tff.federated_collect 更改到服务器(已传达值)。

    再详细一点: 在上面的类型规范中,.membertff.FederatedType 上的一个属性。 TFF 指南Federated Core > Type System 是一个很好的资源,可以了解有关不同 TFF 类型的更多详细信息。

    {int32}@CLIENTS 表示由一组可能不同的整数组成的联合值,每个客户端设备一个。请注意,我们所说的单个联合值包含出现在网络中多个位置的多个数据项。可以将其视为一种具有“网络”维度的张量,尽管这种类比并不完美,因为 TFF 不允许随机访问联合值的成员成分。

    在屏幕截图中,client_outputs 也是“放置”@CLIENTS(来自 .placement 属性)并遵循类似的语义:它具有多个值(每个客户端一个)但单个值不可寻址(即值不像 Python list)。

    相比之下,collected_output 被放置在@SERVER。然后这个子弹:

    <weights=float32[10,5],bias=float32[5]>@SERVER 表示服务器上的权重和偏差张量的命名元组。由于我们去掉了花括号,这表明 all_equal 位已设置,即只有一个元组(无论托管该值的集群中可能有多少服务器副本)。

    注意“single tuple”短语,在tff.federated_collect 之后有一个单一的值序列放置在服务器上。这个序列可以像stream 一样迭代。

    【讨论】:

      猜你喜欢
      • 2018-07-12
      • 1970-01-01
      • 2011-12-08
      • 2016-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-16
      • 1970-01-01
      相关资源
      最近更新 更多