首页 > 其他分享 >Pytorch | Tutorial-03 数据转换

Pytorch | Tutorial-03 数据转换

时间:2024-03-20 19:14:12浏览次数:22  
标签:03 转换 torch transform ToTensor Pytorch train Tutorial Lambda

这是对 Pytorch 官网的 Tutorial 教程的中文翻译。

数据并不总是以训练机器学习算法所需的最终处理形式出现,我们使用转换来对数据执行一些操作并使其适合训练。

所有 TorchVision 数据集都有两个参数:用于修改特征的  transform  和用于修改标签的  target_transform。接受包含转换逻辑的可调用对象。 torchvision.transforms 模块提供了几种开箱即用的常用转换。

FashionMNIST 数据集的特征采用 PIL 图像格式,标签为整数。对于训练,我们需要将特征作为归一化张量,将标签作为独热编码张量。为了进行这些转换,我们使用  ToTensor  和  Lambda 。

import torch
from torchvision import datasets
from torchvision.transforms import ToTensor, Lambda

ds = datasets.FashionMNIST(
    root="data",
    train=True,
    download=True,
    transform=ToTensor(),
    target_transform=Lambda(lambda y: torch.zeros(10, dtype=torch.float).scatter_(0, torch.tensor(y), value=1))
)

输出:

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, 362470.31it/s]
  1%|          | 229376/26421880 [00:00<00:38, 681259.72it/s]
  4%|3         | 950272/26421880 [00:00<00:11, 2185553.59it/s]
 15%|#4        | 3833856/26421880 [00:00<00:02, 7599317.20it/s]
 34%|###4      | 9109504/26421880 [00:00<00:00, 18310296.11it/s]
 46%|####5     | 12091392/26421880 [00:00<00:00, 17936658.84it/s]
 68%|######7   | 17924096/26421880 [00:01<00:00, 22974578.28it/s]
 89%|########9 | 23592960/26421880 [00:01<00:00, 25758355.11it/s]
100%|##########| 26421880/26421880 [00:01<00:00, 18198564.66it/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, 325487.35it/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, 362947.95it/s]
  5%|5         | 229376/4422102 [00:00<00:06, 682324.89it/s]
 21%|##1       | 950272/4422102 [00:00<00:01, 2189897.25it/s]
 87%|########6 | 3833856/4422102 [00:00<00:00, 7611069.08it/s]
100%|##########| 4422102/4422102 [00:00<00:00, 6093636.48it/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, 39985698.13it/s]
Extracting data/FashionMNIST/raw/t10k-labels-idx1-ubyte.gz to data/FashionMNIST/raw

ToTensor()

ToTensor 将 PIL 图像或 NumPy ndarray 转换为 FloatTensor 。并将图像像素值缩放到 [0., 1.] 范围内。

Lambda 转换

Lambda 转换应用任何用户定义的 lambda 函数。在这里,我们定义一个函数将整数转换为 one-hot 编码张量。它首先创建一个大小为 10 的零张量(数据集中的标签数量)并调用 scatter_ ,它在标签 y 给出的索引上分配 value=1 。

target_transform = Lambda(lambda y: torch.zeros(
    10, dtype=torch.float).scatter_(dim=0, index=torch.tensor(y), value=1))

标签:03,转换,torch,transform,ToTensor,Pytorch,train,Tutorial,Lambda
From: https://www.cnblogs.com/shaojunjie0912/p/18085871

相关文章

  • L2-034 口罩发放
    破防了,我自己写的只能得5分,测试点0都过不去,并且至今没有找到错误的原因。等我找到了再回来。然后看别人的。#include<bits/stdc++.h>usingnamespacestd;structnode{ stringname; stringtno; intstate; inttime; intpos;};map<string,int>mp;//领取资格ve......
  • Pytorch | Tutorial-04 构建神经网络模型
    这是对Pytorch官网的Tutorial教程的中文翻译。神经网络由对数据执行操作的层/模块组成。torch.nn命名空间提供了构建您自己的神经网络所需的所有构建块。PyTorch中的每个模块都是nn.Module的子类。神经网络本身就是一个模块,由其他模块(层)组成。这种嵌套结构允许轻松构......
  • 深度学习500问——Chapter03:深度学习基础(3)
    文章目录3.5BatchSize3.5.1为什么需要Batchsize3.5.2BatchSize值的选择3.5.3在合理范围内,增大BatchSize有何好处3.5.4盲目增大BatchSize有何坏处3.5.5调节BatchSize对训练效果影响到底如何3.6归一化3.6.1归一化含义3.6.2为什么要归一化3.6.3为什......
  • 003、下终南山过斛斯山人宿置酒
    003、下终南山过斛斯山人宿置酒唐●李白暮从碧山下,山月随人归。却顾所来径,苍苍横翠微。相携及田家,童稚开荆扉。绿竹入幽径,青萝拂行衣。欢言得所憩,美酒聊共挥。长歌吟松风,曲尽河星稀。我醉君复乐,陶然共忘机。 【现代诗演译】终南山下与友斗酒歌 暮晚、碧山、皓月,跟......
  • Pytorch | Tutorial-01 张量
    Tensors张量张量是一种特殊的数据结构,与数组和矩阵非常相似。在PyTorch中,我们使用张量对模型的输入和输出以及模型的参数进行编码。张量与NumPy的ndarray类似,不同之处在于张量可以在GPU或其他硬件加速器上运行。事实上,张量和NumPy数组通常可以共享相同的底层内存,从而......
  • 2024-03-20 闲话
    把上周四英语课的生词记录一下,文艺复兴一下。(不过最近草稿纸又用了大量了,应该会再做一些四级题把A4纸储备一下)rat&mouse一般认为rat是大老鼠,mouse的体型偏小mal-是一个前缀,表示“不好的”,比如malfunction动词表示“出故障”highcholestral高胆固醇的ulcer......
  • Linux环境运行python项目提示No module named '_ssl'
    版本python3.11.4控制台错误提醒File"/usr/local/python3/lib/python3.11/ssl.py",line100,in<module> import_ssl#ifwecan'timportit,lettheerrorpropagate ^^^^^^^^^^^ModuleNotFoundError:Nomodulenamed'_ssl'错误原因:ce......
  • 【2024-03-19】期望失调
    20:00只要活着,我们所有人都持有改变的能力,甚至是发生根本性改变的能力。                                                 ——卡伦·霍妮昨晚小区又停水了,没有通知也......
  • 24/03/20 贪心(一)
    (1)CF1684DTraps有\(n\)个数字\(a_1\sima_n\)排成一排,你需要从左到右依次越过所有数。两种越过\(i\)的方式:花费\(a_i\)的代价越过;花费\(0\)的代价越过,后面的\(a_i\)都加\(1\)。现在你拥有最多\(k\)次操作二的机会,求最小的代价总和。一定会使用\(k\)......
  • L2-032 彩虹瓶
    纯模拟,一次就AC了。#define_CRT_SECURE_NO_WARNINGS#include<bits/stdc++.h>usingnamespacestd;vector<int>huoja;//货架queue<int>order;//发货顺序intmain(){ intn,m,k;//颜色数量货架容量发货顺序 cin>>n>>m>>k; while(k--){ h......