gpt4 book ai didi

python - 具有转置的 4D 数组的 Numpy 点积失败

转载 作者:太空宇宙 更新时间:2023-11-04 04:30:50 27 4
gpt4 key购买 nike

对于维度为 (60,64,2,2) 的 4 维数组 A,需要计算其转置 A_t 的点积。

A_t 的维度为 (2,2,64,60)。以下是我所做的。

A_t = np.transpose(A)
A_At = A_t.dot(A)

点积抛出错误

ValueError: shapes (2,2,64,60) and (60,64,2,2) not aligned: 60 (dim 3) != 2 (dim 2)

我是否错误地进行了转置?我还尝试将单个数组转换为 numpy 矩阵(尽管根据几篇文章不推荐),然后计算点积,但我得到了一个不同的错误。

我也研究过诸如广播之类的 numpy 主题,但我找不到任何有用的 4D 数组示例。

如有任何意见,我们将不胜感激。谢谢!

注意:我使用的是 python 2.7

最佳答案

根据您的知识驱动希望在末尾有一个 2x2 数组,使用 xarray.dot 怎么样?对于那种任务。有了你的A

>>> A.shape
(60, 64, 2, 2)

你会做

>>> xA   = xr.DataArray(A, dims=['d1','d2','d3','d4'])
>>> xA_t = xA.T
>>> xr.dot(xA_t, xA, dims=['d1','d2']).shape
(2, 2)

关于python - 具有转置的 4D 数组的 Numpy 点积失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52679673/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com