如何在ano like中使用batch-tensordot纽比·埃因苏姆

2024-09-29 23:23:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个张量3和形状(3,4,5)和另一个张量4形状(3,4,7,5)。 在纽比

 result = np.einsum("ijk, ijmk->ijm", tensor3, tensor4)
 print result.shape 
 (3, 4, 7)

但在剧院里,怎么做。在


Tags: npresult形状printshape剧院einsumijk
1条回答
网友
1楼 · 发布于 2024-09-29 23:23:22

第一步是转置和重塑张量,这样只保留第一个维度。在这种情况下,它非常简单,您只需组合前两个维度:

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相加:

^{pr2}$

最后,重塑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)

相关问题 更多 >

    热门问题