pytorch中Dataset函数学习

Dataset函数学习

Dataset是一个包装类,用来将数据包装为Dataset类,然后传入DataLoader中,我们再使用DataLoader这个类来更加快捷的对数据进行操作。

一.Dataset的组成

通常包含三个部分:

1.*def __init__(self)*
2.*def __getitem__(self, index):*
3.*def __len__(self):*

二.def init(self)

1.需要self的原因

在类的代码(函数)中,需要访问当前的实例中的变量和函数的,即,访问Instance中的:

对应的变量(property):利用Instance.ProperyNam,去读取之前的值和写入的新值;
调用对应函数(function):Instance.function(),即执行对应的动作;
-> 而需要访问实例的变量和调用实例的函数,当然需要对应的实例Instance对象本身.
-> 而Python中就规定好了,函数的第一个参数,就必须是实例对象本身,并且建议,约定俗成,把其名字写为self,以self为前缀的变量都可供类中的所有方法使用.

2.函数的参数设置

(1)__init__函数可以包含多个参数,如数据的读取路径和对数据的处理设置等一系列设定,常见的__init__函数如下所示:

def init(self, data_root, pad_size=64, flod_num=3, training=True):

(2)__init__中的参数设首先要变成当前实例中的参数,方便DataSet类中的其他函数使用

    self.flod_num = flod_num
    self.pad_size = pad_size
    self.data_root = data_root
    self.training = training

(3)在实例化这个类的过程中我们需要对__init__中定义的参数进行实际赋值.例如:

train_set=Dataset('/home/minist', 64, 3, True)

(4)然后利用DataLoader函数对包装的数据进行进一步的处理,如定义batch_size批量处理的数据量,例子如下:

train_loader = data.DataLoader(
train_set,
batch_size=128, 
shuffle=True, 
drop_last=False)

三. def getitem(self, index)

这个函数通常的参数为self和index,而index是作为一个序号索引:

我们通常从地址中获取的数据是一个包含几千甚至上万个样本的大型整体数据,我们需要单个的获取每一个样本便于对样本集的划分和处理,这个函数就是为了通过索引读取单个的样本,然后返回这单个样本数据和其对应的标签.

四.def len(self)

这个函数是为了返回样本的总数量,该方法提供了dataset的大小

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值