Python Numpy einsum klij->kijl 和 kijl->klij 它们是什么意思?
Python Numpy einsum klij->kijl and kijl->klij what do they mean?
我试图从 https://github.com/rezazad68/BCDU-Net/blob/master/Retina%20Blood%20Vessel%20Segmentation/evaluate.py 中理解以下代码:
patches_imgs_test = np.einsum('klij->kijl', patches_imgs_test)
以及以下内容:
predictions = np.einsum('kijl->klij', predictions)
我尝试查找 einsum
操作数 klij->kijl
和 kijl->klij
但幸运女神尚未站在我这边。我得到的最接近的(可能)是以下不解释带有“4个字符”的案例:
https://docs.scipy.org/doc/numpy/reference/generated/numpy.einsum.html
Understanding NumPy's einsum
我的直觉是它只是根据角色的移动方式旋转图像。我对此是否正确或接近?一些见解将不胜感激!
P.S。 numpy einsum
文档让我很生气..
提供的 einsum
语句等同于(使用 np.moveaxis
):
patches_imgs_test = np.moveaxis(patches_imgs_test, 1, -1)
其次是:
predictions = np.moveaxis(predictions, -1, 1)
基本上,将第二个轴移动到最后,然后将其放回结果中。
在这种情况下,它是将图片块转储到神经网络中。第二和第四轴是实际的补丁,因此代码在传递给 NN 之前将它们放在末尾,而第一和第三轴是位置数据。
我试图从 https://github.com/rezazad68/BCDU-Net/blob/master/Retina%20Blood%20Vessel%20Segmentation/evaluate.py 中理解以下代码:
patches_imgs_test = np.einsum('klij->kijl', patches_imgs_test)
以及以下内容:
predictions = np.einsum('kijl->klij', predictions)
我尝试查找 einsum
操作数 klij->kijl
和 kijl->klij
但幸运女神尚未站在我这边。我得到的最接近的(可能)是以下不解释带有“4个字符”的案例:
https://docs.scipy.org/doc/numpy/reference/generated/numpy.einsum.html Understanding NumPy's einsum
我的直觉是它只是根据角色的移动方式旋转图像。我对此是否正确或接近?一些见解将不胜感激!
P.S。 numpy einsum
文档让我很生气..
提供的 einsum
语句等同于(使用 np.moveaxis
):
patches_imgs_test = np.moveaxis(patches_imgs_test, 1, -1)
其次是:
predictions = np.moveaxis(predictions, -1, 1)
基本上,将第二个轴移动到最后,然后将其放回结果中。
在这种情况下,它是将图片块转储到神经网络中。第二和第四轴是实际的补丁,因此代码在传递给 NN 之前将它们放在末尾,而第一和第三轴是位置数据。