首页 > 其他分享 >PyTorch 从入门到放弃 —— 加载数据

PyTorch 从入门到放弃 —— 加载数据

时间:2023-06-26 17:24:23浏览次数:41  
标签:DataLoader 入门 torch PyTorch train import size data 加载

PyTorch 有两种基础数据类型: torch.utils.data.DataLoader 和 torch.utils.data.DatasetDataset,它们存储着样本和对应的标记。 Dataset是样本数据集,DataLoader对Dataset进行封装,方便加载、遍历和分批等。

import torch
from torch import nn
from torch.utils.data import DataLoader
from torchvision import datasets
from torchvision.transforms import ToTensor

  

PyTorch 提供了不同用途的数据集,比如: TorchTextTorchVision, and TorchAudio. 在本教程中,我们使用TorchVision。

torchvision.datasets 模块包含了各种视觉数据集, 比如 CIFAR, COCO (完整列表)。 本教程我们使用FashionMNIST数据集。 每个视觉数据集包含2个参数:transform 和 target_transform,可以分别用来修改样本和标记。

# 从开放机构下载训练数据集
training_data = datasets.FashionMNIST(
    root="data",
    train=True,
    download=True,
    transform=ToTensor(),
)

# 下载测试数据集
test_data = datasets.FashionMNIST(
    root="data",
    train=False,
    download=True,
    transform=ToTensor(),
)
输出:

Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-images-idx3-ubyte.gz Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-images-idx3-ubyte.gz to data/FashionMNIST/raw/train-images-idx3-ubyte.gz 0%| | 0/26421880 [00:00<?, ?it/s] 0%| | 65536/26421880 [00:00<01:12, 365718.31it/s] 1%| | 229376/26421880 [00:00<00:38, 685682.68it/s] 3%|3 | 884736/26421880 [00:00<00:10, 2498938.52it/s] 7%|7 | 1933312/26421880 [00:00<00:05, 4141475.37it/s] 19%|#8 | 4915200/26421880 [00:00<00:01, 10854978.12it/s] 26%|##5 | 6782976/26421880 [00:00<00:01, 11037400.65it/s] 37%|###7 | 9797632/26421880 [00:01<00:01, 15568756.79it/s] 44%|####4 | 11730944/26421880 [00:01<00:01, 14184748.16it/s] 55%|#####5 | 14647296/26421880 [00:01<00:00, 17510568.70it/s] 63%|######3 | 16777216/26421880 [00:01<00:00, 15834704.91it/s] 75%|#######4 | 19693568/26421880 [00:01<00:00, 18759775.35it/s] 83%|########2 | 21889024/26421880 [00:01<00:00, 16780435.96it/s] 94%|#########3| 24772608/26421880 [00:01<00:00, 19391805.01it/s] 100%|##########| 26421880/26421880 [00:01<00:00, 13914460.04it/s] Extracting data/FashionMNIST/raw/train-images-idx3-ubyte.gz to data/FashionMNIST/raw Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-labels-idx1-ubyte.gz Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-labels-idx1-ubyte.gz to data/FashionMNIST/raw/train-labels-idx1-ubyte.gz 0%| | 0/29515 [00:00<?, ?it/s] 100%|##########| 29515/29515 [00:00<00:00, 326673.50it/s] Extracting data/FashionMNIST/raw/train-labels-idx1-ubyte.gz to data/FashionMNIST/raw Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-images-idx3-ubyte.gz Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-images-idx3-ubyte.gz to data/FashionMNIST/raw/t10k-images-idx3-ubyte.gz 0%| | 0/4422102 [00:00<?, ?it/s] 1%|1 | 65536/4422102 [00:00<00:12, 362354.20it/s] 5%|5 | 229376/4422102 [00:00<00:06, 684627.79it/s] 21%|## | 917504/4422102 [00:00<00:01, 2626211.85it/s] 44%|####3 | 1933312/4422102 [00:00<00:00, 4103892.12it/s] 100%|##########| 4422102/4422102 [00:00<00:00, 6109664.51it/s] Extracting data/FashionMNIST/raw/t10k-images-idx3-ubyte.gz to data/FashionMNIST/raw Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-labels-idx1-ubyte.gz Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-labels-idx1-ubyte.gz to data/FashionMNIST/raw/t10k-labels-idx1-ubyte.gz 0%| | 0/5148 [00:00<?, ?it/s] 100%|##########| 5148/5148 [00:00<00:00, 61868988.52it/s] Extracting data/FashionMNIST/raw/t10k-labels-idx1-ubyte.gz to data/FashionMNIST/raw

 

Dataset作为参数传递给DataLoader。这样就可以把数据集封装起来,实现自动分批,取样,打乱和多处理器协同加载。在这里,我们定义每批大小为65,这样一来,分批遍历dataloader的时候,就能在循环中每次取到64组特征和标记。

batch_size = 64

# Create data loaders.
train_dataloader = DataLoader(training_data, batch_size=batch_size)
test_dataloader = DataLoader(test_data, batch_size=batch_size)

for X, y in test_dataloader:
    print(f"Shape of X [N, C, H, W]: {X.shape}")
    print(f"Shape of y: {y.shape} {y.dtype}")
    break
输出:
Shape of X [N, C, H, W]: torch.Size([64, 1, 28, 28]) Shape of y: torch.Size([64]) torch.int64

 

想了解更多请移步 从TyTorch加载数据

标签:DataLoader,入门,torch,PyTorch,train,import,size,data,加载
From: https://www.cnblogs.com/conveniencable/p/17506234.html

相关文章

  • Bert Pytorch 源码分析:四、编解码器
    #Bert编码器模块#由一个嵌入层和NL个TF层组成classBERT(nn.Module):"""BERTmodel:BidirectionalEncoderRepresentationsfromTransformers."""def__init__(self,vocab_size,hidden=768,n_layers=12,attn_heads=12,d......
  • Pytorch | 输入的形状为[seq_len, batch_size, d_model]和 [batch_size, seq_len, d_m
    首先导入依赖的torch包。importtorch我们设:seq_len(序列的最大长度):5batch_size(批量大小):2d_model(每个单词被映射为的向量的维度):10heads(多头注意力机制的头数):5d_k(每个头的特征数):21、输入形状为:[seq_len,batch_size,d_model]input_tensor=torch.randn(5,2,10)inp......
  • elk 入门 - 分析nginx日志 + json格式 + 有调试的意识 + elk7.2.0
    1.本次采用的一台主机,将所有的软件安装一台上进行测试工作。2.安装部署:https://blog.51cto.com/hwg1227/22999953.简单调试输出rubydebuginput{file{path=>"/usr/local/log_test/*/*/*.log"start_position=>"beginning"}}output{e......
  • web前端性能优化之资源文件加载优化
    前言首屏速度是用户体验的最关键一环,而首屏速度最大的决定性因数就是资源的加载速度而资源的加载速度=资源大小+网速资源大小影响的方面有1、压缩(如Gzip)2、一部分代码分割出来做异步加载,需要的时候在加载3、写代码的时候尽量精简本文主要针对,资源文件加载的优化。异步资......
  • Pytorch | view()函数的使用
    函数简介Pytorch中的view函数主要用于Tensor维度的重构,即返回一个有相同数据但不同维度的Tensor。根据上面的描述可知,view函数的操作对象应该是Tensor类型。如果不是Tensor类型,可以通过tensor=torch.tensor(data)来转换。普通用法(手动调整size)view(参数a,参数b,…),其中,总......
  • 类加载
    ​类加载到jvm中的过程java.exe调用dll文件创建java虚拟机创建引导类加载器,sun.mis.Launcher创建其他类加载器获取运行类自己的加载器,加载class文件(从具体位置读取)调用main方法jvm销毁初始化launcherpublicLauncher(){ //初始化两个类加载器,ExtClassLoader为单例......
  • SpringCloud Alibaba入门5之Hystrix的使用
    我们继续在前一章的基础上进行学习。https://blog.51cto.com/u_13312531/6546544使用目的:上一章我们已经使用OpenFeign完成了服务间的调用,如果现在存在大量的服务,每个服务有若干个节点,其中一个节点发生故障,加入的请求一直阻塞,大量堆积的请求会把服务打崩,可能导致级联式的失败,甚至......
  • python数据可视化神器--pyecharts 快速入门
    大家好,我是一名来自广东的邓棋文,目前正在学习Python的开发技能。在开发过程中,数据可视化是一个非常重要的环节,帮助我们理解数据,从而作出正确的决策。今天,我将介绍一个强大的Python数据可视化库——pyecharts。pyecharts是一个用于生成ECharts图表的类库。ECharts是百度开源的一个......
  • Mermaid从入门到入土
    概述什么是Mermaid?Mermaid是一种基于Javascript的绘图工具,使用类似于Markdown的语法,使用户可以方便快捷地通过代码创建图表。项目地址:https://github.com/mermaid-js/mermaid(需要将梯子设置成全局模式才能访问)怎么使用Mermaid?使用特定的Mermaid渲染器;使用集成了Merm......
  • ESP(EFI System Partition)分区是UEFI固件中的一个特殊分区,通常位于硬盘上的第一个分区,
    ESP(EFISystemPartition)分区是UEFI固件中的一个特殊分区,通常位于硬盘上的第一个分区,用于存储引导加载程序、UEFI应用程序和其他与系统启动相关的文件。ESP分区使用FAT32文件系统,并拥有特定的分区类型GUID(GUIDPartitionTable,GPT)。ESP分区的主要作用是提供一个可被UEFI固件直接......