看完不会你揍我!!Pytorch利用文本数据建立自己的数据集- Dataset Dataloader详解 附案例
train_loader=DataLoader(dataset=Mydata,batch_size=20,shuffle=True,num_workers=0)
Dataset、Dataloader 简介
Dataset是Pytorch自带的建立自己数据库的一个类,可通过其建立自己的数据库。
Dataloader是Pytorch自带加载自己数据库的一个工具,可通过其加载自建数据库中的数据。
看完这个简介你应该对Dataset、Dateloader有一个基本的了解,下面我们就来谈一谈代码的实现问题。
导入相关的的库
import torch
import torch.nn as nn
from torch.utils.data import DataLoader,Dataset
import numpy as np
import xlrd
Dataset、Dateloader代码实现及详解
对于Dataset,作者是通过定义一个新类别来实现,这个类别主要实现的是三个功能:
1、从Excal(txt)文件中提取所有数据
def __init__(self,filepath):
从Excal中具体实现过程可以借鉴我的前一篇文章
python自动化办公-提取excal表格某列数据
从txt中提取数据则是利用np.loadtxt(filepath,delimiter,dtype)实现
参数详解:
filepath = 文件所在路径
delimiter = 数据间的分隔符
dtype = 将文本中的数据转换成需要的类型
2、创建每一组数据的索引
def __getitem__(self, index):
3、返回所创建数据库的长度
def __len__(self):
建立好这三个功能,一个可以实现加载、索引、确定长度的数据库的新类就建立完成,我们的工作也向前走了一大步。
下面看看从Excal(txt)中提取数据的代码实现:
class Mydataset(Dataset):def __init__(self,filepath):datalist=[]data = xlrd.open_workbook(filepath, encoding_override='utf-8')table = data.sheets()[0] # 选定表sheet1 或sheet2 0表示sheet1 1表示sheet2nrows = table.nrows # 获取行号ncols = table.ncols # 获取列号'''def __init__(self,filepath):xy = np.loadtxt(filepath,delimiter=' ',dtype=np.float)self.x_data = torch.from_numpy(data_scaler.fit_transform(datalist[:,:-1]))self.y_data = torch.from_numpy(xy[:,[-1]])'''for i in range(0, nrows): # 第0行为表头alldata = table.row_values(i) # 循环输出excel表中每一行,即所有数据datalist.append(alldata) # 创建datalist = np.array(datalist,dtype=np.float32) #将获取的数据全部转换成数组浮点数self.len = datalist.shape[0]self.x_data = torch.from_numpy(data_scaler.fit_transform(datalist[:,:-1])) #将特征输入归一化self.y_data = torch.from_numpy(datalist[:,[-1]])print("数据已录入")def __getitem__(self, index):return self.x_data[index],self.y_data[index]def __len__(self):return self.len
Dataloader 参数详解
train_loader=DataLoader(dataset=Mydata,batch_size=20,shuffle=True,num_workers=0)
Dataloader中的参数中比较有用的有四个:
dataset = 加载数据集
batch_size = 将所有数据进行打包分装(int)
shuffle = 是否随机打乱(True/None)
num_workers = 线程数(int)
过程图:
以上就是本篇文章的全部内容了,下一篇文章将用一个简单的深层神经网络来实现。
创作不易,可不可以请您动动宝贵的手指给我顶个赞呢??
非常感谢,祝您有个愉快的一天!!
看完不会你揍我!!Pytorch利用文本数据建立自己的数据集- Dataset Dataloader详解 附案例相关推荐
- 看完你也能独立负责项目!产品经理做APP从头到尾的所有工作流程详解!
(一)项目启动前 从事产品的工作一年多,但自己一直苦于这样或者那样的困惑,很多人想要从事产品,或者老板自己创业要亲自承担产品一职,但他们对产品这个岗位的认识却不明晰,有的以为是纯粹的画原型,有的是以为 ...
- python数据集的预处理_关于Pytorch的MNIST数据集的预处理详解
关于Pytorch的MNIST数据集的预处理详解 MNIST的准确率达到99.7% 用于MNIST的卷积神经网络(CNN)的实现,具有各种技术,例如数据增强,丢失,伪随机化等. 操作系统:ubuntu ...
- 【小白学PyTorch】扩展之Tensorflow2.0 | 21 Keras的API详解(下)池化、Normalization
<<小白学PyTorch>> 扩展之Tensorflow2.0 | 21 Keras的API详解(上)卷积.激活.初始化.正则 扩展之Tensorflow2.0 | 20 TF ...
- 【小白学PyTorch】扩展之Tensorflow2.0 | 21 Keras的API详解(上)卷积、激活、初始化、正则...
[机器学习炼丹术]的学习笔记分享 <<小白学PyTorch>> 扩展之Tensorflow2.0 | 20 TF2的eager模式与求导 扩展之Tensorflow2.0 | ...
- 怎么看计算机硬件配置情况,怎么样查看电脑配置?5种方法查看电脑硬件配置好坏图文详解...
学会看电脑配置,其实对于我们来说十分重要,因为电脑硬件配置的好坏,是直接影响到我们实际操作的.而查看电脑配置的方法有很多,比如说命令查看,系统查看,诊断程序查看,你还可以使用第三方软件查看.下面,电脑 ...
- 执行一次怎么会写入两次数据_Java进阶知识:一文详解缓存Redis的持久化机制,新手看完也会用
Redis 的数据全部在内存里,如果突然宕机,数据就会全部丢失,因此必须有一种机制来保证 Redis 的数据不会因为故障而丢失,这种机制就是 Redis 的持久化机制. Redis有两种持久化的方式: ...
- 【pytorch】model.train和model.eval用法及区别详解
使用PyTorch进行训练和测试时一定注意要把实例化的model指定train/eval,eval()时,框架会自动把BN和DropOut固定住,不会取平均,而是用训练好的值,不然的话,一旦test的 ...
- Pytorch torchvision完成Faster-rcnn目标检测demo及源码详解
Torchvision更新到0.3.0后支持了更多的功能,其中新增模块detection中实现了整个faster-rcnn的功能.本博客主要讲述如何通过torchvision和pytorch使用fas ...
- PyTorch模型部署:pth转onnx跨框架部署详解+代码
文章目录 引言 基础概念 onnx:跨框架的模型表达标准 onnxruntime:部署模型的推理引擎 示例代码 0)安装onnx和onnxruntime 1)pytorch模型转onnx模型 2)on ...
- 关于遍历,看这篇文章就足够了【find()、findIndex()、forEach()、splice()、slice()详解】
在日常写JS逻辑的时候,有小伙伴经常问及我一些遍历相关的逻辑,很多都是很基础性的知识点,只不过需要组合一下就可以实现效果.所以,我觉得还是有必要举几个例子来说明一下这几个js常用的方法,find(). ...
最新文章
- gentoo.tw的临时解决方法[转贴]
- 21-爬虫之scrapy框架selenium的使用08
- P7115-[NOIP2020]移球游戏【构造】
- Java StringBuilder codePointAt()方法与示例
- CAS实现单点登录方案(SSO完整版)
- Team Foundation Server 源代码控制权限问题
- cloudare mysql 密码修改_CentOS7.3 LAMP环境搭建私有云NextCloud过程记录
- spark 动态预加载数据_Spark+TDengine 在中国电信电力测功系统监控平台上的应用实践...
- 有关scm和check style的pom.xml文件
- c语言编写dnf辅助,DNF辅助脚本怎么制作?游戏简易脚本制作教程
- 苹果电脑怎样下载爱奇艺
- spring5-介绍Spring框架
- Pointnet模型源码解读(更新中)
- flutter混编ios打包生成ipa文件
- h5物体拖动_HTML5原生拖拽/拖放(drag drop)详解
- 5G通信呼啸而来,对未来WiFi覆盖有何影响?
- hosts屏蔽网站以及代理越过屏蔽
- Android中singleTask模式没起作用!!
- darknet预测分类性能提升2.2:GPU加速resize_image()
- UGUI_事件执行类ExecuteEvents