我试图将一组矩阵与张量流中的一组向量相乘 . 我有两个张量分别具有形状[k,n,n]和[k,n] . 如果我在网络中设置k,那么可以将成对点设为:

final =  tf.einsum("kji,ki->kj", M, V)

但是,einsum()不适用于动态形状的张量(可变批量):

文件“... \ Python35 \ site-packages \ tensorflow \ python \ ops \ special_math_ops.py”,> 207行,在einsum axes_to_sum中)文件“... \ Python35 \ site-packages \ tensorflow \ python \ ops \ special_math_ops.py“,>第252行,在_einsum_reduction中如果len(t0_axis_labels)!= len(t0.get_shape()):文件”... \ Python35 \ site-packages \ tensorflow \ python \ framework \ tensor_shape.py“, >第575行,在len中引发ValueError(“不能使用未知等级的Shape的长度 . ”)ValueError:不能取具有未知等级的Shape的长度 .

任何想法如何以不同的方式解决问题?注意,在np表示法中我需要实现以下内容:对于具有形状[k,n]的c

c = np.zeros([k,n])
c[i,:] = np.dot(M[i,:,:],V[i,:])

TF版1.8