Pytorch学习笔记(1):pytoch中如何加载训练数据

1.为什么不需要自己写加载方法

pytorch中提供了两个类用于训练数据的加载,分别是 torch.utils.data.Dataset和 torch.utils.data.DataLoader 。不像torchvision中集合了很多常用的计算机视觉的常用数据集,作为在音乐信息检索这方面,数据集要自己设计加载方法。如果每次不同的数据集都要自己写函数加载,

  • 每次读取代码不能够重用,不同的数据读取代码不同
  • 自己写的加载函数也会有各种问题,比如说限制数据读取速度,或者当数据集太大,直接加载到字典或者列表中会很占用内存,数据读取阶段也会占用大量时间
  • 只能单线程读取数据

这次我做的实验需要加载歌曲的梅尔频谱,每个歌曲的片段为30秒,大约是一个1290*128大小的矩阵。所以这次我决定使用pytorch的Dataset类来加载数据。

2.Dataset类

class torch.utils.data.Dataset

这个抽象类代表了数据集,任何我们自己设计的数据集类都应该是这个类的子类,继承这个类,重写 _len_() 方法,这个方法是用来获得数据集的大小,和__getitem__()方法,这个方法用来返回数据集中索引值为0到len(dataset)的元素。

  • def __getitem__(self, index): 实现这个函数,就可以通过索引值来返回训练样本数据
  • def __len__(self): 实现这个函数,返回数据集的大小
class Dataset(object):
    ""
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值