pytorch自定义数据集和数据加载器

假设有一个保存为npy格式的numpy数据集,现在需要将其变为pytorch的数据集,并能够被数据加载器DataLoader所加载

首先自定义一个数据集类,继承torch.utils.data.Dataset类

在这个类中要实现__init__,__getitem__,__len__这三个方法,否则会报错

然后实例化这个类,得到train_data,最后将train_data放入DataLoader数据加载器,到此已经完成

注意,在下面这个代码中的x(也就是数据加载器加载出来的数据)的类型是tensor。也就是说,上面的实现中自动把numpy数据类型转化为了tensor类型

from torch.utils.data import Dataset, DataLoaderclass MyDataset(Dataset):"""path:数据集存放路径"""def __init__(self, path):self.data = np.load(path)def __getitem__(self, index):return self.data[index]def __len__(self):return len(self.data)if __name__ == '__main__':train_data = MyDataset(r"D:\dataset.npy")load1 = DataLoader(train_data, batch_size=128, shuffle=True, pin_memory=True, num_workers=3)for x in load1:print(x.size())

有时候我们需要同时加载数据和其对应的标签,则需要将数据集和标签定义在同一个数据加载器中,这时可以采用以下方法:

from torch.utils.data import Dataset, DataLoaderclass MyDataset(Dataset):def __init__(self, data, label):self.data = dataself.label = labeldef __getitem__(self, index):return self.data[index], self.label[index]def __len__(self):return len(self.label)if __name__ == '__main__':a = np.array([0,1,2,3,4,5])b = np.array([6,7,8,9,10,11])trainset = MyDataset(a, b)train_loader = torch.utils.data.DataLoader(trainset, batch_size=2, shuffle=True, pin_memory=True,num_workers=3)for x, y in train_loader:print(x, y)

重点在__getitem__方法的实现,需要同时返回数据和标签

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/491261.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jQuery 插件格式 规范

方式一(自定义对象):(function($, window, document) { var Plugin, defaults, pluginName;调用时的函数名:pluginName "slidesjs";默认配置:defaults {width: 940,height: 528,callback: {loaded: functio…

QT学习笔记(十):通用算法示例

QT学习笔记&#xff08;十&#xff09;&#xff1a;通用算法示例 std是C标准库统一使用的命名空间(namespace)的名称&#xff0c;C标准库中的名字全部都在std这个命名空间中,std也就是英文"standard"&#xff08;标准&#xff09;的缩写。 #include <QCoreAppl…

Input type (torch.cuda.DoubleTensor) and weight type (torch.cuda.FloatTensor) should be the same

原因是没有把输入数据类型转为float类型 首先找到代码出错的位置&#xff0c;将该处的数据类型转为float类型&#xff1a; x x.type(torch.FloatTensor)

了解因果论:从珀尔的《为什么》开始

图I&#xff1a;AI从达特茅斯会议&#xff08;1956年&#xff09;得名至今已有六十年&#xff0c;期间几起几落&#xff0c;群星璀璨&#xff0c;像一个大舞台&#xff0c;你方唱罢我登场&#xff0c;留下了一些永载史册的理论和成就&#xff0c;但涉及因果的甚少作者&#xff…

外观模式(三层解耦)

说到外观模式&#xff0c;很容易想到的是设计一件漂亮的衣服然后穿上自己的身上&#xff0c;让自己看起来更加的漂亮&#xff0c;但是这个可能并不是这样子的&#xff0c;从更深层次的来说&#xff0c;外观更应该是所见即所得的&#xff0c;对于观众来说&#xff0c;看起来可能…

QT学习笔记(十一):QString类

QT学习笔记&#xff08;十一&#xff09;&#xff1a;QString类1、概述2、编辑操作3、查询操作3、转换操作1、概述 1.1 QString 类是 Qt 中用于表示字符串的类&#xff0c;实现在 QtCore 共享库中。QString 类在实现上有以下特征: 1&#xff09;字符串采用 Unicode 内部编码&…

pytorch数据加载时报错OSError: [Errno 22] Invalid argument

将数据加载器的num_workers删去&#xff0c;即由 train_loader torch.utils.data.DataLoader(trainset, batch_sizebatch_size, shuffleTrue, pin_memoryTrue, num_workers3) 改为 train_loader torch.utils.data.DataLoader(trainset, batch_sizebatch_size, shuffleTrue…

人工智能六十年技术简史

作者 | 李理出品 | AI科技大本营&#xff08;rgznai100&#xff09;人类的进化发展史就是一部人类制造和使用工具的历史&#xff0c;不同的工具代表了人类的进化水平。从石器时代、铁器时代、蒸汽时代、电气时代再到现在的信息时代&#xff0c;我们使用更加先进便捷的工具来改变…

windows和linux中搭建python集成开发环境IDE——如何设置多个python环境

本系列分为两篇&#xff1a; 1、【转】windows和linux中搭建python集成开发环境IDE 2、【转】linux和windows下安装python集成开发环境及其python包 3、windows和linux中搭建python集成开发环境IDE——如何设置多个python环境 Install Python packages on Ubuntu 14.04 from ch…

QT学习笔记(十二):透明窗体设置

QT学习笔记&#xff08;十二&#xff09;&#xff1a;透明窗体设置 创建 My_Widget 类 基类为QWidget &#xff0c; My_Widget.cpp 源文件中添加代码 #include "widget.h" #include "ui_widget.h"#include <QGraphicsDropShadowEffect>// 构造函数…

【新书】崛起的超级智能:互联网大脑如何影响科技未来

来源&#xff1a;刘锋的未来课堂2019年7月&#xff0c;《崛起的超级智能&#xff1a;互联网大脑如何影响科技未来》由中信出版社正式出版。作者刘锋。吕乃基、石勇、吕本富做序。张亚勤、刘慈欣、周鸿祎、王飞跃、约翰.翰兹等专家为这本书撰写了推荐语。《崛起的超级智能》主要…

Elsevier的LaTeX模板报错:Environment graphicalabstract undefined

原因在于CTEX&#xff0c;下载安装一个TEX Live2019代替CTEX

iOS开发 autoResizingMask使用

autoResizingMask 是UIView的一个属性&#xff0c;在一些简单的布局中&#xff0c;使用autoResizingMask&#xff0c;可以实现子控件相对于父控件的自动布局。 autoResizingMask 是UIViewAutoresizing 类型的&#xff0c;其定义为&#xff1a; property(nonatomic) UIViewAutor…

OpenCV学习笔记(一):Win10(x64)+Qt5.8(MSVC2013)+OpenCV3.1.0配置过程

OpenCV学习笔记&#xff08;一&#xff09;&#xff1a;Win10(x64)Qt5.8(MSVC2013)OpenCV3.1.0配置过程 Win10(x64)Qt5.8(MSVC2013)OpenCV3.1.0配置过程 配置需求 原版 Win10(x64) Qt5.8(MSVC2013) OpenCV3.1.0 第一步&#xff1a;安装QT 5.8 和OpenCV3.1.0 并配置环境变量…

Windows10安装TeXlive和TeXstudio

参考https://blog.csdn.net/aiwei169/article/details/81431363 进入官网http://tug.org/texlive/ 第一步 第二步 第三步 第四步 等待 安装包下载 解压下载的文件&#xff0c;将解压后的安装包放在英文路径下&#xff08;即不要包含中文的路径&#xff09; 修改安装路径&am…

QT环境配置:QT5.8.0与VS2013环境配置

QT环境配置&#xff1a;QT5.8.0与VS2013环境配置 1、下载VS2013&#xff0c;QT5.8.0&#xff0c;qt-vs-tools-msvc2013-2.1.1。 1&#xff09;VS2013版本为&#xff1a;Visual Studio Ultimate 2013 2&#xff09;QT5.8.0版本为&#xff1a;qt-opensource-windows-x86-msvc20…

云计算与边缘计算协同的九大应用场景剖析

来源 | 中国信息通信院CAICT未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&#xff0c;互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测体系&#xff0c;开展世界人工智能智商评测&#xff1b;开展互联网&…

QT学习笔记(十三):绘制图像

QT学习笔记&#xff08;十三&#xff09;&#xff1a;绘制图像 paintEvent() 事件源码添加&#xff1a; #include <QPainter> #include <QImage> #include <QPixmap> #include <QBitmap> #include <QPicture>void Widget::paintEvent(QPaintEve…

【Robot学院】一文读懂世界智能制造大趋势!

本文来源&#xff1a;智造智库工业4.0在德国被认为是第四次工业革命&#xff0c;主要是指&#xff0c;在“智能工厂”利用“智能设备”将“智能物料”生产成为“智能产品”&#xff0c;整个过程贯穿以“网络协同”&#xff0c;从而提升生产效率&#xff0c;缩短生产周期&#x…