如果我有一个联合值,请说我想强制转换为{int32}@CLIENTS
的{{1}},有一种简单的方法吗?谢谢!
答案 0 :(得分:3)
通常需要在用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)
答案 1 :(得分:-1)
可以使用tf.cast()完成此操作,但是可以使用@ tff.federated_computation()。