2024-09-29 23:23:22 发布
网友
我有一个张量3和形状(3,4,5)和另一个张量4形状(3,4,7,5)。 在纽比
result = np.einsum("ijk, ijmk->ijm", tensor3, tensor4) print result.shape (3, 4, 7)
但在剧院里,怎么做。在
第一步是转置和重塑张量,这样只保留第一个维度。在这种情况下,它非常简单,您只需组合前两个维度:
x = tensor.tensor3() y = tensor.tensor4() i, j, m, k = y.shape x_ = x.reshape((i * j, k)) y_ = y.reshape((i * j, m, k))
然后,向batched_tensordot指定要将x_的轴1与y_的轴2相加:
batched_tensordot
x_
y_
最后,重塑z_得到前两个维度:
z_
z = z_.reshape((i, j, m)) print(z.eval({x: np.zeros((3, 4, 5)), y: np.zeros((3, 4, 7, 5))}).shape) # (3, 4, 7)
第一步是转置和重塑张量,这样只保留第一个维度。在这种情况下,它非常简单,您只需组合前两个维度:
然后,向
^{pr2}$batched_tensordot
指定要将x_
的轴1与y_
的轴2相加:最后,重塑
z_
得到前两个维度:相关问题 更多 >
编程相关推荐