为什么torch.from_numpy不需要matplotlib的不同字节顺序?

问题描述 投票:0回答:2

这里是一段代码(在Linux CentOS 7.7.1908,x86_64上运行)

import torch    #v1.3.0
import numpy as np  #v1.14.3
import matplotlib.pyplot as plt
from astropy.io.fits import getdata   #v3.0.2
data, hdr = getdata("afile.fits", 0, header=True) #gives dtype=float32 2d array
plt.imshow(data)
plt.show()

这给出了一个很好的512x512图像enter image description here

现在,我想将“数据”转换为PyTorch张量:

a = torch.from_numpy(data)

尽管,PyTorch提出:

ValueError:给定的numpy数组的字节顺序与本机字节顺序不同字节顺序。当前不支持字节顺序之间的转换。

嗯,我尝试了不同的操作,但均未成功:即。 byteswap(),copy()

一个主意?

PS:当我仍然可以使用matplotlib进行数据传输到Mac OSX(Mojave)时,会发生相同的错误。

python matplotlib pytorch astropy
2个回答
0
投票

嗯,我从FITS读取数据数组后找到了解决方法>

data = data.astype(np.float32)
a = torch.from_numpy(data)

没有引发错误,一切都很好...


0
投票

[FITS以大端字节顺序存储数据(在开发FITS时,这是一种更为通用的机器体系结构;可悲的是,该标准从未进行过更新以允许在此方面具有灵活性,尽管可以使用单个标头关键字轻松完成此标准表示数据的字节序...)

© www.soinside.com 2019 - 2024. All rights reserved.