TensorDataset和DataLoader使用

TensorDataser和DataLoader的解释与使用 是 PyTorch 提供的一个工具类,用于将多个张量(Tensors)打包成一个数据集(Dataset),便于配合DataLoader进行批量加载和数据管理。 阅读详情

      在说TensorDataset之前我们先简单说一下Dataset。


      一般情况下是Dataset和DataLoader配合使用

Dataset :用来整理数据的格式 ,即从全部数据中获取
DataLoader:用来分批次向模型中传入数据,也就是把 Dataset中的全部数据分批次送入模型中

但有时数据格式比较简单,也可以使用TensorDataset的方式来整理数据的格式

例如:按对三取余来进行分类,可以分为1,2,0 三种情况

1.构建TensorDataset

x = torch.Tensor([[1, 4, 7, 10], [2, 5, 8, 11], [3, 6, 9, 12]])
y = torch.Tensor([1, 2, 0])
tensorDataset = Data.TensorDataset(x, y)

print(dataset)
#<torch.utils.data.dataset.TensorDataset object at 0x0000019D740B8B38>

将tensorDataset输出,可以得到一下格式的数据

for i, j in tensorDataset:
    print(i, j)
# tensor([ 1.,  4.,  7., 10.]) tensor(1.)
# tensor([ 2.,  5.,  8., 11.]) tensor(2.)
# tensor([ 3.,  6.,  9., 12.]) tensor(0.)

2.用TensorDataset构建DataLoader

dataloader = Data.DataLoader(dataset=tensorDataset, 
					batch_size=2, 
					shuffle=False,  #shuffle是否打乱顺序,默认为False表示不打乱顺序
				 	drop_last=True) # drop_last表示是否舍弃最后一个,
				 					#举例:本次总的数据是三个,每次运送两个数据

print(dataloader)
for j, k in dataloader:
    print(j, k)

这样就可以分批次的取出数据了
这事只输出了两个数据,最后一个被舍弃
tensor([[ 1., 4., 7., 10.],
[ 2., 5., 8., 11.]]) tensor([1., 2.])

pytorch中TensorDataset与DataLoader的使用 Datatset\TensorDataset\DataLoader 阅读详情

相关推荐

【动手学深度学习3】实战pytorch中的utils.data.TensorDataset和utils.data.DataLoader工具类

2、DataLoader类:是torch中util.data包下面的一个工具类,用于将TensorDataset整合的数据集(比较大,比如1000个特征和1000个标签)划分为小批量数据级,比如批量大小为10,就会划分为100个。1、TensorDataset类:是torch中util.data包下面的一个工具类,用于把特征和标签整合一个数据集,便于将整个数据集拆分小批量数据集,用于后续小批量梯度下降训练。导入torch和torch.utils库,然后验证输入为一个张量的情况。

m0_37770650的博客 435

TensorDataset

TensorDataset 可以用来对 tensor 进行打包,就好像 python 中的 zip 功能。该类通过每一个 tensor 的第一个维度进行索引。因此,该类中的 tensor 第一维度必须相等。 from torch.utils.data import TensorDataset import torch from torch.utils.data import DataLoader a = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9], [1

anshiquanshu的专栏 2万+

pytorch学习笔记六:torch.utils.data下的TensorDataset和DataLoader的使用

一、TensorDataset 对给定的tensor数据(样本和标签),将它们包装成dataset ''' data_tensor (Tensor) - 样本数据 target_tensor (Tensor) - 样本目标(标签) ''' dataset=torch.utils.data.TensorDataset(data_tensor, ...

耐心的小黑的博客 1万+

pytorch中的TensorDataset和DataLoader

用于将多个Tensor组合在一起,方便对数据进行统一处理。可以组合特征和标签。可以组合多个特征张量。DataLoader用于批量加载数据,支持多种数据处理功能。支持批量处理数据。支持数据打乱。支持多线程加载。

2303_77275067的博客 1636

自动化学报Ctex+texstudio配置方法

自动化学报Latex的模板win10使用方法(CTEX+texstudio)

zxy15924462502的博客 7371

基于轻量级神经网络MobileNet V2的水果识别种类算法研究

本文阐述了一种基于轻量级卷积神经网络MobileNet V2的水果分类与识别算法研究。为了最大限度地促进机械收获,需要一个检测系统,它可以让我们识别不同类别的水果。一个相对未开发的想法是使用深度学习和人工智能算法,不仅可以检测水果的种类,还可以检测水果是否成熟。这可以证明是有利可图的,因为它可以提供作物生长状况以及成熟和未成熟果实的个体数量,以及决定是否是收获时间的有用信息。第一步对数据进行了预处理,数据预处理技术在众多的深度学习计算中起到了重要作用。

qq_43556680的博客 1640

pytorch中Dataset,TensorDataset和DataLoader用法

1.用法介绍  pytorch中数据封装和数据加载分别用函数torch.utils.data.Dataset和torch.utils.data.DataLoader进行实现。具体的用法如下所示: class Dataset(object): def __getitem__(self, index): raise NotImplementError def __len__(self): raise NotImplementErro def __add__(self, other): ret

欢迎来到道的世界 1万+

循环卷积和线性卷积(矩阵视角)

矩阵视角的循环卷积核线性卷积

shengsong 3577

PyTorch中 DataLoader 和 TensorDataset 的详细解析

DataLoader是 PyTorch 中用于加载数据的主要工具,它提供了一种灵活的方式来迭代数据集。在训练深度学习模型时,DataLoader能自动将数据分批次处理,还支持多线程/进程加载,极大地提高了数据预处理的效率和速度。是一个封装了张量的数据集,它提供了一种方便的方法将数据封装为适合DataLoader处理的格式。通常与DataLoader结合使用,使数据的迭代更加高效和方便。

qlkaicx的博客 6431

光伏逆变器在环测试解决方案

光伏行业是利用太阳能光辐射将其转化为可用电能的行业。近年来,为应对气候变化和能源安全等挑战,全球对清洁能源的需求不断增长。太阳能作为最具潜力和可再生的能源之一,被视为替代传统化石能源的重要选择,光伏行业因此得到了迅猛发展,并在全球范围内得到了广泛应用。许多国家和地区都将光伏技术作为关键的能源发展方向。尤其是在新兴和发展中国家,光伏发电具有巨大的增长潜力,将成为未来市场竞争的重点。随着规模化生产的推进,光伏组件的制造成本不断降低。

shiwei0813的博客 959

高温环境下(100℃以上)相机的几种保障方案

高温环境下相机保障措施摘要:针对120℃以上高温环境,相机需采取多重防护:1.散热设计采用金属机身、散热鳍片或风扇;2.关键部件选用耐高温材料(铝合金、特种玻璃);3.电子元件需军规级芯片并做三防处理;4.建议外接电源或耐高温电池。工业相机(如FLIR A655sc、Basler ace)及特种机型(Ximea xiQ)具备高温适应性,普通相机可加装隔热套件配合冷却系统。选择时需关注传感器信噪比和全局快门性能,并设置温度监控保护机制。注意高温会加速设备老化,需定期检测维护。(149字)

start_up_go的博客 1584

Pytorch中TensorDataset和DataLoader用法

TensorDataset和DataLoader特性和示例

JamesZYR的博客 1222

EtherCAT主站SOEM -- 0 -- 该EtherCAT主站SOEM专栏后续安排

SOEM(Simple Open EtherCAT Master)是一个开源的EtherCAT主站库,允许开发者构建自定义的EtherCAT主站应用程序。EtherCAT是一种实时以太网通信协议,广泛应用于工业自动化和机器控制领域。开源性质:SOEM是一个开源项目,这意味着开发者可以自由地查看、修改和分发代码。这使其成为工业自动化领域的一个强大工具,可以根据具体需求进行定制。EtherCAT主站实现:SOEM库提供了一个完整的EtherCAT主站实现,允许主站与多个EtherCAT从站设备进行通信。

常驻客栈的博客--嵌入式EtherCAT 6663

PyTorch 数据加载机制:TensorDataset & DataLoader

本文系统介绍了PyTorch中TensorDataset和DataLoader的功能与实现原理。TensorDataset负责将多个tensor打包成Dataset对象,实现单个样本的索引访问;DataLoader则负责批处理、随机打乱和并行加载数据。文章详细解析了两者的源码结构和工作流程,通过示例展示了它们如何协同工作:TensorDataset存储数据,DataLoader组织数据输出。这种分工使得PyTorch的数据加载既高效又灵活,适用于不同规模的训练任务。

2401_88413886的博客 845

2023华为od机试C卷【推荐多样性】Java&Go 实现

推荐多样性需要从多个列表中选择元素,一次性要返回N屏数据(窗口数量),每屏展示K个元素(窗口大小),选择策略1.各个列表元素需要做穿插处理,即先从第一个列表中为每屏选择一元素,再从第二个列表中为每屏选择一个元素,依次类推2.每个列表的元素尽量均分为N份,如果不够N个,也要全部分配完,

MISAYAONE的博客 2179

Unity之OpenXR+XR Interaction Toolkit实现 VR控制第一人称角色模型动画

我们在开发VR项目时,有时会有第一人称视角的需求,即我们自己带上VR头显,能够看到自己的身体,如果模拟一些人物触电死亡,使用工具动画之类的需求,那么VR控制第一人称视角就比较实用了。我们今天就来介绍一下如何实现VR设备控制第一人称:1.角色手部跟随手柄移动和旋转2.角色头部跟随VR头显转动和移动3.角色腿部跟随角色头显移动和下蹲。

TxNet 2843

pytorch——TensorDataset,DataLoader

from torch.utils.data import TensorDataset, DataLoader train_data = TensorDataset(all_input_ids, all_input_mask, all_segment_ids, all_start_positions, all_end_positions, all_example_index) train_dataloader = DataLoader(train_data, sampler=train_sampler, b

绿箭薄荷的博客 1429

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Pytorch中的TensorDataset与DataLoader的使用

TensorDataset TensorDataset本质上与python zip方法类似,对数据进行打包整合。 官方文档说明: **Dataset wrapping tensors. Each sample will be retrieved by indexing tensors along the first dimension.* Parameters: tensors (Tensor) – tensors that have the same size of the first dimension

qq_41657873的博客 1万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

深度学习技术栈 —— Pytorch之TensorDataset、DataLoader

简单来首,与DataLoader这两个类的作用, 就是将数据读入并做整合,以便交给模型处理。就像石油加工厂一样,你不关心石油是如何采集与加工的,你关心的是自己去哪加油,油价是多少,对于一个模型而言,DataLoader就是这样的一个予取予求的数据服务商。参考文章或视频链接[1]本篇工作虽然简单,但确是进阶的一个不大不小的绊脚石,功夫虽小,也不能不练。

键盘国治理专家的博客 1598

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Pytorch中TensorDataset,DataLoader的联合使用

首先从字面意义上来理解TensorDataset和DataLoader,TensorDataset是个只用来存放tensor(张量)的数据集,而DataLoader是一个数据加载器,一般用到DataLoader的时候就说明需要遍历和操作数据了。TensorDataset(tensor1,tensor2)的功能就是形成数据tensor1和标签tensor2的对应,也就是说tensor1中是数据,而tensor2是tensor1所对应的标签。来个小例子: from torch.utils.data ...

F845992311的博客 3726

pytorch TensorDataset与DataLoader类

该类主要实现以下三个功能①如何获取每一个数据及其label --> 抽象方法。

好好学习天天向上 1211

Pytorch中DataLoader && TensorDataset 的基本用法

Pytorch中DataLoader && TensorDataset 的基本用法DataLoader:TensorDataset DataLoader: DataLoader(dataset=torch_dataset,batch_size=BATCH_SIZE,shuffle=True,num_workers=2) dataset: DataLoader支持的两种数据集 Iterator格式:例如数组,迭代器等 Shuffle :是否重新整理数据。 num_workers :加载数据

weixin_42382758的博客 756

python之TensorDataset和DataLoader - 知乎

python之TensorDataset和DataLoader - 知乎

To be a better man 955

Pytorch数据加载之 TensorDataset 和 DataLoader

在深度学习中,我们常需要对处理过的数据进行加载,使用手工加载的方式不但低效而且麻烦,在pytorch中提供了很好的API来快速完成这些操作。接下来将详细介绍TensorDataset和 DataLoader。 一、TensorDataset TensorDataset 可以用来对 tensor以类似于一对一分配的方式进行打包,该类通过每一个 tensor 的第一个维度进行索引。 from torch.utils.data import TensorDataset import torch from torc

weixin_44443160的博客 873

TensorDataset、Dataset、DataLoader三兄弟的用法

TensorDataset和自定义的Dataset处理完以后送入DataLoader中,进行batch or shuffle操作 TensorDataset:相当于Python中的Zip函数 a = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9], [1, 2, 3], [4, 5, 6], [7, 8, 9], [1, 2, 3], [4, 5, 6], [7, 8, 9], [1, 2, 3], [4, 5, 6], [7, 8, 9]]) b = to

Data _designer 1877
上一篇: drop_last=True
下一篇: 关于loss.backward()optimizer.step()optimizer.zero_grad()的顺序
fdt丶
博客等级 码龄9年 68粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值