这里是一段代码(在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()
现在,我想将“数据”转换为PyTorch张量:
a = torch.from_numpy(data)
尽管,PyTorch提出:
ValueError:给定的numpy数组的字节顺序与本机字节顺序不同字节顺序。当前不支持字节顺序之间的转换。
嗯,我尝试了不同的操作,但均未成功:即。 byteswap(),copy()
一个主意?
PS:当我仍然可以使用matplotlib进行数据传输到Mac OSX(Mojave)时,会发生相同的错误。
嗯,我从FITS读取数据数组后找到了解决方法>
data = data.astype(np.float32) a = torch.from_numpy(data)
没有引发错误,一切都很好...
[FITS以大端字节顺序存储数据(在开发FITS时,这是一种更为通用的机器体系结构;可悲的是,该标准从未进行过更新以允许在此方面具有灵活性,尽管可以使用单个标头关键字轻松完成此标准表示数据的字节序...)