Tensorflow 如何访问序列类型中的值?
Tensorflow 如何访问序列类型中的值?,tensorflow,tensorflow-federated,Tensorflow,Tensorflow Federated,client\u输出中有以下属性 weights_delta = attr.ib() client_weight = attr.ib() model_output = attr.ib() client_loss = attr.ib() 之后,我以序列的形式通过 a=tff.federated\u collect(客户端输出)和round\u model\u delta=tff.federated\u map(在中选择\u fn,a)。我宣布 ` 在。在服务器上求平均值的过程中,我希望通过选择
client\u输出中有以下属性
weights_delta = attr.ib()
client_weight = attr.ib()
model_output = attr.ib()
client_loss = attr.ib()
之后,我以序列的形式通过
a=tff.federated\u collect(客户端输出)
和round\u model\u delta=tff.federated\u map(在中选择\u fn,a)
。我宣布
`
在。在服务器上求平均值的过程中,我希望通过选择一些损失值较小的客户端来求权重_delta
的平均值。因此,我尝试通过a.weights\u delta
访问它,但它不起作用。tff.federated\u collect
返回一个tff.SequenceType
放在tff.SERVER
上,您可以用与客户端数据集相同的方式处理,通常使用tff.tf\u计算
修饰的方法
请注意,您必须在tff.federated\u计算
的范围内使用tff.federated\u collect
运算符。您可能想要做的[*]是使用tff.federated\u map
操作符将其传递到tff.tf\u计算中。一旦进入tff.tf_计算
,您就可以将其视为tf.data.Dataset
对象,tf.data
模块中的所有内容都可用
我在猜。更详细地解释您希望实现的目标会有所帮助。谢谢您的回答。我更新了我的问题的更多细节。有没有办法找出每个客户的体重增量
和损失金额
??我想根据为每个客户生成的损失总额
选择客户,并使用所选客户的权重增量
进行tff.联邦平均值
。是否有任何方法可以仅为部分客户找到权重增量
的平均值?我不确定如何提供更多帮助,因为你指的是问题中没有的对象。什么是重量增量<代码>损失金额
?花点时间准备一个小的、自成一体的、误差可再现的例子会有所帮助。如果还不熟悉,阅读tf网站上的tf.data
指南也会有所帮助。
@tff.tf_computation() # append
def selecting_fn(a):
#TODO
return round_model_delta