PyTorch 介绍 | TRANSFORMS

数据并不总是满足机器学习算法所需的格式。我们使用 transform对数据进行一些操作,使得其能适用于训练。

所有的TorchVision数据集都有两个参数,用以接受包含transform逻辑的可调用项-transform 修改features, targe_transform 修改标签。torchvision.transforms提供了几种现成的常用转换操作。

FashionMNIST features是PIL Image格式,标签是整型。为了训练,我们需要将其转换为标准的tensors,并且标签是one-hot编码的tensor。为了完成这些转换,使用 ToTensorLambda

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

ds = datasets.FashionMNIST(
    root='data',
    train=True,
    download=True,
    transform=ToTensor(),
    # 在创建的具有10个0值数组中,单独取第一个维度的y位置(原始标签),赋为1,即为one-hot编码
    target_tansform=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
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
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
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
Extracting data/FashionMNIST/raw/t10k-labels-idx1-ubyte.gz to data/FashionMNIST/raw

ToTensor()

Lambda Transforms

Lambda转换可使用任何用户定义的lambda函数。这里,我们定义了一个函数,可以将整型转换成one-hot编码的tensor,首先创建一个大小为10的0值tensor,根据给定标签 y得到索引位置,调用scatter_将其赋为1。

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

延伸阅读

Original: https://www.cnblogs.com/DeepRS/p/15739823.html
Author: Deep_RS
Title: PyTorch 介绍 | TRANSFORMS

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/714140/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 注意事项_代码的一些些规范

    零零散散也正式以打代码为生快一年半了,从代码写的稀碎到稍微能总结出一点东西,也算是一个一直在向上缓慢行走的状态了 很难说我喜欢代码这件事,原本选择也只是为了糊口,但从面向百度编程,…

    技术杂谈 2023年7月25日
    088
  • [学习笔记]Java运算符

    Java支持的运算符:算术运算符、关系运算符、位运算符、逻辑运算符、赋值运算符、其他运算符; 算术运算符 算术运算遵循四则运算法则,可以嵌套任意的括号。算术运算符用在数学表达式; …

    技术杂谈 2023年7月24日
    052
  • 《Tornado介绍》—— 读后总结

    作者:xingoo 出处:http://www.cnblogs.com/xing901022 posted @2019-01-24 08:29 xingoo 阅读(1037 ) 评…

    技术杂谈 2023年5月30日
    0109
  • xampp配置局域网访问

    打开 httpd-xampp.conf(/xampp/apache/conf/extra/httpd-xampp.conf)搜索关键字: Order deny,allow 然后在O…

    技术杂谈 2023年5月31日
    091
  • Spring使用ThreadPoolTaskExecutor自定义线程池及实现异步调用

    多线程一直是工作或面试过程中的高频知识点,今天给大家分享一下使用 ThreadPoolTaskExecutor 来自定义线程池和实现异步调用多线程。 一、ThreadPoolTas…

    技术杂谈 2023年7月25日
    059
  • 统一NET Core WebApi返回结果

    private static readonly string[] Summaries = new[] { "Freezing", "Bracing&q…

    技术杂谈 2023年5月31日
    088
  • 测试用例千万不能随便,记录由一个测试用例异常引起的思考

    一 测试用例大家平时写不写? 我以前写测试用例只是针对业务接口,每个接口写一个,数据case也只是测一种。能跑通就可以了。要不同的场景case,那就改数据。重新跑一遍。简单省事。 …

    技术杂谈 2023年7月11日
    059
  • ubuntu18.04下取消中键复制粘贴功能

    Q:armlinux开发,主机采用ubuntu18.04操作系统,使用过程中关于鼠标中键有如下操作现象,操作:1.选中文本,2.将鼠标光标定位到要插入的位置3.按下鼠标中键现象:将…

    技术杂谈 2023年7月11日
    067
  • 面向对象ooDay8

    类中成员的默认访问权限———默认的 接口中成员的默认访问权限——public的 重写接口中的抽象方法时,必须加publi…

    技术杂谈 2023年7月11日
    060
  • 分布式应用运行时 Dapr 1.7 发布

    Dapr 是一个开源、可移植的、事件驱动的运行时,可以帮助开发人员构建在云和边缘上运行的弹性的、微服务的、无状态和有状态应用程序,并且关注于业务逻辑而不用考虑分布式相关的问题。 分…

    技术杂谈 2023年5月31日
    078
  • Java线程的两种实现方式,以及它们之间的联系和区别

    Java线程的两种实现方式,以及它们之间的联系和区别 本文将从继承Thread类和实现Runnable接口讲起,并阐述它们的联系和区别。 实现方式1:继承Thread类,并重写ru…

    技术杂谈 2023年7月24日
    056
  • swap(a,b)异或骚操作方法

    众所周知,平日里我们如果要交换两个变量的时候,通常都是 void swap(int a, int b) { int temp = a; a = b; b = temp; } 通过创…

    技术杂谈 2023年7月24日
    071
  • Effective Java 3 读后感

    Effective Java 3 读后感 最近学习了一下Effectvie Java,这是一本非常适合有一定经验的Java后端人员阅读的书。书中总结许多编码经验对开发很有帮助,比如…

    技术杂谈 2023年7月24日
    071
  • Javaweb学习-JSP

    ; ; 从JSP开始学习创建web项目 posted @2022-03-24 21:21 HelloHui 阅读(9 ) 评论() 编辑 Original: https://www…

    技术杂谈 2023年6月21日
    0128
  • manim 4.0 预备知识

    1、Vmobject的认识 由handles和anchors决定,可以改变Vmobject.points来实现 2、动画的认识 最重要的是补间(interpolate),其由alp…

    技术杂谈 2023年7月24日
    093
  • excel中图表无法编辑的解决办法

    在多人协同办公的情况下,有些表格往往会设置为共享编辑模式,此时会发现sheet页中的的图表却无法编辑或者操作 解决办法: 1、打开【共享工作簿】 2、取消勾选【允许多用户同时编辑,…

    技术杂谈 2023年7月10日
    0325
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球