关键词短语生成的无监督方法09——my_dataloader.py

2021SC@SDUSC


通过前几周的学习与分析,完成对Extract.py、Model.py的分析,接下来对my_dataloader.py展开分析。

一、Dataset类和DataLoader类

Dataset类主要是用于原始数据的读取或者基本的数据处理,比如在NLP任务中常常需要把文字转化为对应字典ids,这个步骤就可以放在Dataset中执行。

DataLoader,是进一步对Dataset的处理。Dataset得到的数据集可以理解为"列表",即可以根据index取出某个特定位置的数据。而DataLoder就是把这个Dataset数据集根据设定的batch_size划分成很多个“子数据集”,每个“子数据集”中的元素数量就是batch_size。这样做的原因是若一次性把所有的数据放进模型会导致内存溢出,而且模型的迭代会很慢,故采用划分模式。

Dataset类

实际上,torch包中已经有预定义好的torch.utils.data.Dataset类。故使用时创建一个Dataset类,使用类的继承即可。主要要重写的方法是__init __ (),__ len __ (),__ getitem __()这三个。作用如下。

__init__方法:进行类的初始化,一般是用来读取原始数据。

__getitem__方法:根据下标对每一个数据进行进一步的处理。return:希望通过dataset[index]在数据集中取出的元素。

__len__方法:return:数据集的数量(int) 。

Dataset构建:

from torch.utils.data import Dataset
import torch
 
def MyTokenizer(sentence):
    src_vocab = {
   '度':0,'上':1,'世':2,'中':3,
    '为':4,'人':5,'伟':6,'你'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值