Python 如何将cupy数据转换为PyTorch张量?
最近我了解到CuPy将利用GPU加速深度学习中的计算。但是,在执行以下步骤后,我仍然得到一个无法解决的错误:Python 如何将cupy数据转换为PyTorch张量?,python,pytorch,cupy,Python,Pytorch,Cupy,最近我了解到CuPy将利用GPU加速深度学习中的计算。但是,在执行以下步骤后,我仍然得到一个无法解决的错误: 我通过https://docs.cupy.dev/en/stable/install.html。其他软件包也已正确安装 原始代码如下所示,在文件A中: 导入h5py 进口火炬 将numpy作为np导入 作为cp导入cupy 从torch.utils.data导入数据集,数据加载器 从torchvision导入变换、UTIL 类cupy_数据集(数据集): 定义初始化(自,文件目录): s
https://docs.cupy.dev/en/stable/install.html
。其他软件包也已正确安装A
中:导入h5py
进口火炬
将numpy作为np导入
作为cp导入cupy
从torch.utils.data导入数据集,数据加载器
从torchvision导入变换、UTIL
类cupy_数据集(数据集):
定义初始化(自,文件目录):
super(cupy_数据集,self)。_init_()
data=h5py.File(文件目录)
self.ms=cp.array(data.get(“ms”))
self.lms=cp.array(data.get(“lms”))
self.pan=cp.array(data.get(“pan”))
self.gt=cp.array(data.get(“gt”))
self.ms=(self.ms[0:10,:,:,:,:])
self.lms=(self.lms[0:10,:,:,:,:])
self.pan=(self.pan[0:10,:,:,:])
self.gt=(self.gt[0:10,:,:,:,:])
self.ms=torch.utils.dlpack.from_dlpack(self.ms.toDLpack()).float()
self.lms=torch.utils.dlpack.from_dlpack(self.lms.toDLpack()).float()
self.pan=torch.utils.dlpack.from_dlpack(self.pan.toDLpack()).float()
self.gt=torch.utils.dlpack.from_dlpack(self.gt.toDLpack()).float()
定义(自我):
返回透镜(自身gt形状[0])
def uu getitem uu(self,idx):
ms=self.ms[idx,:,:,:,:]
lms=self.lms[idx,:,:,:,:]
pan=self.pan[idx,:,:,:,:]
gt=self.gt[idx,:,:,:,:]
返回ms、lms、pan、gt
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
train_数据集=cupy_WorldView3_数据集(文件目录='/training_数据/train.mat')
打印(列车数据集.gt.形状)
在文件B
中:
导入火炬
进口丘比特
从{file_A}导入cupy_数据集
train_数据集=cupy_数据集(文件目录='/training_数据/train.mat')
gt=列车_数据集.gt
pan=列车_数据集.pan
lms=列车_数据集.lms
ms=列车运行数据集。ms
打印(类型(gt))
A
中的结果如下所示:回溯(最近一次呼叫最后一次):
文件“{File path}”,第94行,在
train_数据集=cupy_WorldView3_数据集(文件目录='/training_数据/train.mat')
文件“{File path}”,第76行,在_init中__
self.ms=torch.utils.dlpack.from_dlpack(self.ms.toDLpack()).float()
AttributeError:模块“torch.utils”没有属性“dlpack”
文件B
中的结果如下所示:
使用后端:pytorch
回溯(最近一次呼叫最后一次):
文件“/home/office desktop/.pycharm\u helpers/pydev/pydevd.py”,第1477行,in\u exec
pydev_imports.execfile(文件、全局、局部)#执行脚本
文件“/home/office desktop/.pycharm\u helpers/pydev/\u pydev\u imps/\u pydev\u execfile.py”,execfile中第18行
exec(编译(内容+“\n”,文件,'exec'),全局,loc)
文件“{File path}”,第6行,在
train_数据集=cupy_数据集(文件目录='/training_数据/train.mat')
文件“{File path}”,第76行,在_init中__
self.ms=torch.utils.dlpack.from_dlpack(self.ms.toDLpack()).float()
AttributeError:“cupy.core.core.ndarray”对象没有属性“toDLpack”
进程已完成,退出代码为1
仅供参考,我的基本想法是使用DLpack
作为CuPy和PyTorch张量之间的互连。初始用法和语法可在和中找到
为什么会这样?先谢谢你。如果您需要任何其他信息,我愿意提供:)