将生成的高光谱数据(hdr文件)加载到dataloader出现的问题解决

原计划是做数据增强的。

原始数据是一个numpy数组(H开头的)

生成的数据类型是一个tensor,device = cuda。(epoch开头的)

在制作dataset过程中是没问题的。在dataloader加载过程中会出现下面的问题:

原本的代码是

image = torch.from_numpy(hsi)

此时会显示报错:expected np.ndarray (got Tensor)

分析了一下原因是:我希望得到的是一个numpy数组,但是传送的是一个tensor。

说明在传送H那个数据是没问题的,

但是在传送epoch那个数据出现了问题。

因此我单独把那个epoch的数据读出来,确定了是这里出现了问题

因此采用网上的方法:

利用.detach().cpu().numpy() 来解决,发现这样读取生成的数据是ok的,但是,读取原本的数据会出错。原因是numpy数组没有detach这个方法。

那制作dataloader就麻烦很多了,因为两个数据是混在一起的,后面找到一个好的方式:

采用:torch.as_tensor(data,dtype = torch.float32,device = 'cpu')来解决,就能把这两类数据都能加载进来了。

最后总结一下:

如果只是查看生成的数据,加载的时候只需要使用:tensor.detach().cpu().numpy()来就可以了。

如果是想要两类数据放一起读取,就采用torch.as_tensor(data,dtype = torch.float32,device = 'cpu')来解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值