gpt4 book ai didi

python - 如何计算 tensorflow 中张量 A 沿张量 B 指定的权重的轴的加权平均值?

转载 作者:行者123 更新时间:2023-12-01 01:05:33 25 4
gpt4 key购买 nike

我正在尝试对 RNN 输出应用加权平均方案。
RNN 输出由具有维度 (a,b,c) 的张量 A 表示。
我可以简单地采用 tf.reduce_mean(A,axis=1) 来获取具有维度 (a,c) 的张量 C

但是,我想沿 axis = 1 对张量 A 进行“加权平均”。
权重在维度为(d,b) 的矩阵B 中指定。

对于d = 1,我可以执行tf.tensordot(A,B,[1,1])来获取维度(a ,c).
现在对于 d=a,我无法计算加权平均值。

有人可以提出解决方案吗?

最佳答案

我不太明白为什么B应该有尺寸(d,b)。如果 B 包含仅在一个维度上对 A 进行加权平均的权重,则 B 只需是向量 (b,),不是矩阵。

如果B是一个向量,你可以这样做:

C = tf.tensordot(A,B,[1,0]) 获取形状 (a,c) 的向量 C >),其中包含使用 B 中指定的权重在 axis=1 上计算 A 的加权平均值。

更新:

你可以这样做:

A = A*B[:,:,None] 

它正在对AB进行元素乘法,其中B存储赋予A<中每个元素的权重。然后:

C = tf.reduce_mean(A,axis=1)

将进行加权平均,因为A中的每个元素都已乘以其权重。

关于python - 如何计算 tensorflow 中张量 A 沿张量 B 指定的权重的轴的加权平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55399197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com