我想将两个具有不同等级的张量相乘,例如
tensor A -> (i x j x k x l)
tensor B -> (l x m)
得到另一个具有这个尺寸的张量。
tensor C -> (i x j x k x m) = (i x j x k x l)*(l x m)
在张量流中,我必须一直重塑才能获得输出
(A.reshape(-1,l)*B).reshape(i,j,k,m)
还有其他直接做的操作吗?
我想将两个具有不同等级的张量相乘,例如
tensor A -> (i x j x k x l)
tensor B -> (l x m)
得到另一个具有这个尺寸的张量。
tensor C -> (i x j x k x m) = (i x j x k x l)*(l x m)
在张量流中,我必须一直重塑才能获得输出
(A.reshape(-1,l)*B).reshape(i,j,k,m)
还有其他直接做的操作吗?
你需要tf.tensordot。不需要在实数乘法之前进行整形。如果要沿 A 的最后一个维度和 B 的第一个维度收缩张量 A 和 B,可以通过这种方式将张量 A 和张量 B 相乘:
tf.tensordot(A, B, axes=[[3], [0]])