每天五分钟深度学习框架PyTorch:基于Dataset封装自定义数据集

本文重点

我们前面使用过torchvision中的数据集,我们可以直接使用torchvison来加载,然后使用dataLoader来获取batch个数据,用于模型的训练和测试。现在的问题是如果我们的所要使用的数据pytorch中没有进行封装怎么办?

Dataset

我们还记得torchvision中封装的数据集dataset继承Dataset,所以我们可以继承Dataset封装处理我们自己数据集的类。

我们需要定义一个类,当然这个类要继承抽象类Dataset,此时我们需要完成三个方法,第一个初始化方法__init__,这个方法完成读取数据集,__len__该方法提供数据集大小和__getitem__通过整数索引返回一个样本

大概的模式

高负载的操作放在__getitem__中,如加载图片,图片transform等,dataset中应尽量只包含只读对象,避免修改任何可变对象,这样多线程操作就不会出现问题。

	from torch.utils.data import Dataset
	class myDataset(Dataset): 
	 def __init__ (self, csv_file, txt_file, root_dir, other_file) : 
	 self.csv_data = pd.read_csv(csv_file) 
	 with open(txt_file, 'r' ) as f: 
	 data_list = f.readlines( ) 
	 self.txt_data = data_list 
	 self.root_dir = root_dir 
	 
	 def __len__ (self)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人工智能_AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值