怎么在pytorch中导入大型数据集

  介绍

今天就跟大家聊聊有关怎么在pytorch中导入大型数据集,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

pytorch的优点

1. pytorch是相当简洁且高效快速的框架;2。设计追求最少的封装;3。设计符合人类思维,它让用户尽可能地专注于实现自己的想法;4。与谷歌的Tensorflow类似,公平的支持足以确保pytorch获得持续的开发更新;5。PyTorch作者亲自维护的论坛供用户交流和求教问题6。入门简单

<强> 1。我们需要定义三个基本的函数,以下是基本流程

class  our_datasets (Data.Dataset):   ,   def 才能;__init__(自我,根,is_resize=False, is_transfrom=False):   ,,,#这里只是个参考。按自己需求写。   ,,,self.root=根   ,,,self.is_resize=is_resize   ,,,self.is_transfrom=is_transfrom   ,   ,,,self.imgs_list=?这里建议保存的是,图片的路径,而不是,图片的数据   ,,,self.labs_list=?   ,   def 才能__getitem__(自我,,指数):   ,   ,,,img_path,实验室=self.imgs_list(指数),self.labs_list(指数)   ,,,,   ,,,#这里使用公益诉讼库读取图片数据。   ,,,img_data =, Image.open (img_path) .convert (& # 39; rgb # 39;)   ,   ,,,#这里看自己需要,可以不要   ,,,if  self.is_resize:   ,,,,,img_data =, img_data.resize ((self.is_resize [0],, self.is_resize [1]),, Image.ANTIALIAS)   ,,,,   ,,,#但是数据转换建议加上,很多时候都会用的到   ,,,if  self.is_transfrom:   ,,,,,img_data=https://www.yisu.com/zixun/self.is_transfrom (img_data)   返回img_data,实验室      def __len__(自我):      返回len (self.imgs_list)

这里,我将读取图片的步骤放到__getitem__,是因为这样放的话,对内存的要求会降低很多,我们只是将数据的路径导入了内存中,当需要读取这个图片数据时,再读取,这样更像是随用随取。如果将这部分放到__init__里面,会一次将图片数据都加载到内存中,如果数据量太大,会直接卡死。

<强> 2。数据集类返回的数据类型是与你读取时的类型一致的。但是在pytorch使用时,会提示

TypeError:, batch  must  contain 张量,,,,dicts 或是列表;,found  & lt; class  & # 39; PIL.Image.Image& # 39;在

通常,在数据了不大时,我一般都是在读取数据后加一句,转换成numpy。数组类型。

但是,在处理较大型的数据时,这样会很慢。

这时候,我建议直接使用torchvision来进行数据转换。

is_transfrom=torchvision.transforms.ToTensor ()

看完上述内容,你们对怎么在pytorch中导入大型数据集有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

怎么在pytorch中导入大型数据集