【问题标题】:Is there a way to cast a federated value?有没有办法铸造一个联合价值?
【发布时间】:2020-06-26 15:34:09
【问题描述】:

如果我有一个联合值,比如 {int32}@CLIENTS,我想将其转换为 {float32}@CLIENTS,有没有一种简单的方法可以做到这一点?谢谢!

【问题讨论】:

    标签: tensorflow-federated


    【解决方案1】:

    张量操作通常需要发生在用tff.tf_computation 装饰的函数内部。由于提到的类型有位置 (@CLIENTS),这可能在 tff.federated_computation 装饰函数内,因此需要使用 tff.federated_map 调用转换方法。

    类似这样的:

    @tff.tf_computation
    def cast_to_float(x):
      return tf.cast(x, tf.float32)
    
    @tff.federated_computation(tff.FederatedType(int32, tff.CLIENTS))
    def my_func(a):
      a_float = tff.federated_map(cast_to_float, a)
      return a_float
    
    print(my_func.type_signature)
    
    >>> ({int32}@CLIENTS -> {float32}@CLIENTS)
    

    【讨论】:

      【解决方案2】:

      可以使用 tf.cast() 来完成,但是使用 @tff.federated_computation()。

      【讨论】:

        猜你喜欢
        • 2012-12-15
        • 2013-05-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-04
        • 1970-01-01
        • 2012-08-28
        • 2022-08-12
        相关资源
        最近更新 更多