我正在尝试将张量流中的一组矩阵与一组矢量相乘。我有两个分别具有形状[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