首页 > 其他分享 >2.4 Transform

2.4 Transform

时间:2023-06-05 23:44:51浏览次数:34  
标签:lambda torch Transform transform ToTensor import 2.4 Lambda

通常而言,数据不会以处理好的形式出现,所以我们需要在训练前对数据进行预处理,以适应训练

所有 TorchVision 的 Dataset 都会有两个参数—— transform 用于修改特征,target_transform 用于修改标签——它们接受包含转换逻辑的可调用对象(其实就是接受函数对象)。 torchvision.transforms 模块提供了几种常见的转换。

如下代码为例,我们所拿到的FashionMNIST的特征是一个PIL Image的格式,它的标签是一个Integer整数。但是我们训练的时候,希望特征是一个正则化后的张量,而标签是一个One-Hot向量张量。所以分别采用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))
)

ToTensor()

ToTensor() 函数可以将一个 PIL image 或者 NumPy ndarray 转换至一个 FloatTensor,同时放缩图像的像素值范围至0-1.

Lambda Transforms

Lambda可以用于定义任何一个用户定义的lambda表达式,使其成为函数,在上述定义的表达式中:

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

先初始化了一个维度为10的零向量,然后利用scatter_函数,将某一个维度的值赋为1

标签:lambda,torch,Transform,transform,ToTensor,import,2.4,Lambda
From: https://www.cnblogs.com/zhouXX/p/17459317.html

相关文章

  • 每日记录(2.4线性表的应用)
    有序表的合并已知线性表La和Lb中的数据元素按值非递减有序排列,现要求将La和Lb归并为一个新的线性表Lc,且Lc中的数据元素仍按值非递减有序排列。La=(1,7,8)Lb=(2,4,6,8,10,11)Lc=(1,2,4,6,7,8,8,10,11)0.新建一个链表新建一个空表C,直接在A和B中每次选取最小值......
  • Transformer结构及其应用详解——GPT、BERT、MT-DNN、GPT-2
    前言 本文首先详细介绍Transformer的基本结构,然后再通过GPT、BERT、MT-DNN以及GPT-2等基于Transformer的知名应用工作的介绍并附上GitHub链接,看看Transformer是如何在各个著名的模型中大显神威的。本文转载自新智元仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专......
  • 大模型核心技术原理: Transformer架构详解
    在大模型发展历程中,有两个比较重要点:第一,Transformer架构。它是模型的底座,但Transformer不等于大模型,但大模型的架构可以基于Transformer;第二,GPT。严格意义上讲,GPT可能不算是一个模型,更像是一种预训练范式,它本身模型架构是基于Transformer,但GPT引入了“预测下一个词”的任......
  • Incrementer:Transformer for Class-Incremental Semantic Segmentation with Knowledg
    摘要目前已有的连续语义分割方法通常基于卷积神经网络,需要添加额外的卷积层来分辨新类别,且在蒸馏特征时没有对属于旧类别/新类别的区域加以区分。为此,作者提出了基于Transformer的网络incrementer,在学习新类别时只需要往decoder中加入对应的token。同时,作者还提出了对于旧类别区......
  • Hugging News #0602: Transformers Agents 介绍、大语言模型排行榜发布!
    每一周,我们的同事都会向社区的成员们发布一些关于HuggingFace相关的更新,包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等,我们将其称之为「HuggingNews」,本期HuggingNews有哪些有趣的消息,快来看看吧!重磅更新TransformersAgents发布,通过自......
  • transformers入门使用
    transformers入门使用HuggingFace是一个开源社区,它提供了先进的NLP模型,数据集,以及其他工具。模型:https://huggingface.co/models数据集:https://huggingface.co/datasets主要的模型自然回归:GPT2,Trasnformer-XL,XLNet自编码:BERT,ALBERT,ROBERTa,ELECTRASto......
  • 背景 | 基于 Transformers 的编码器-解码器模型
    !pipinstalltransformers==4.2.1!pipinstallsentencepiece==0.1.95Vaswani等人在其名作Attentionisallyouneed中首创了基于transformer的编码器-解码器模型,如今已成为自然语言处理(naturallanguageprocessing,NLP)领域编码器-解码器架构的事实标准。最近基......
  • RWKV – transformer 与 RNN 的强强联合
    在NLP(NaturalLanguageProcessing,自然语言处理)领域,ChatGPT和其他的聊天机器人应用引起了极大的关注。每个社区为构建自己的应用,也都在持续地寻求强大、可靠的开源模型。自Vaswani等人于2017年首次提出AttentionIsAllYouNeed之后,基于transformer的强大的模型......
  • 深度学习进阶篇[7]:Transformer模型长输入序列、广义注意力、FAVOR+快速注意力、蛋白质
    深度学习进阶篇[7]:Transformer模型长输入序列、广义注意力、FAVOR+快速注意力、蛋白质序列建模实操。基于Transformer模型在众多领域已取得卓越成果,包括自然语言、图像甚至是音乐。然而,Transformer架构一直以来为人所诟病的是其注意力模块的低效,即长度二次依赖限制问题。随着输入......
  • 比Transformer快4成!Meta发布全新Megabyte模型,解决算力损耗硬伤
    前言 本文介绍了vanillaKD方法,它在ImageNet数据集上刷新了多个模型的精度记录。本文转载自新智元作者|Joey欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。CV各大方向专栏与各个部署框架最全教程整理【CV技术指南】CV全......