pytorch中的transforms.ToTensor和transforms.Normalize的实现
目录
- transforms.ToTensor
- transforms.Normalize
transforms.ToTensor
最近看pytorch时,遇到了对图像数据的归一化,如下图所示:
该怎么理解这串代码呢?我们一句一句的来看,先看transforms.ToTensor()
,我们可以先转到官方给的定义,如下图所示:
大概的意思就是说,transforms.ToTensor()
可以将PIL和numpy格式的数据从[0,255]范围转换到[0,1] ,具体做法其实就是将原始数据除以255。另外原始数据的shape是(H x W x C),通过transforms.ToTensor()
后shape会变为(C x H x W)。这样说我觉得大家应该也是能理解的,这部分并不难,但想着还是用一些例子来加深大家的映像
先导入一些包
import cv2 import numpy as np import torch from torchvision import transforms
定义一个数组模型图片,注意数组数据类型需要时np.uint8【官方图示中给出】
data = np.array([ [[1,1,1],[1,1,1],[1,1,1],[1,1,1],[1,1,1]], [[2,2,2],[2,2,2],[2,2,2],[2,2,2],[2,2,2]], [[3,3,3],[3,3,3],[3,3,3],[3,3,3],[3,3,3]], [[4,4,4],[4,4,4],[4,4,4],[4,4,4],[4,4,4]], [[5,5,5],[5,5,5],[5,5,5],[5,5,5],[5,5,5]] ],dtype='uint8')
这是可以看看data的shape,注意现在为(W H C)。
使用transforms.ToTensor()
将data进行转换
data = transforms.ToTensor()(data)
这时候我们来看看data中的数据及shape。
很明显,数据现在都映射到了[0, 1]之间,并且data的shape发生了变换。
**注意:不知道大家是如何理解三维数组的,这里提供我的一个方法。**
相关推荐
-
Pytorch中的Tensorboard与Transforms搭配使用
这章是结合之前学习的Tensforboard与Transforms的一个练习. 直接上代码: from PIL import Image from torch.utils.tensorboard import SummaryWriter from torchvision import transforms import os root_path = "D:\\data\\basic\\Image" lable_path = "aligned" img_dir = o
-
pytorch中的transforms模块实例详解
pytorch中的transforms模块中包含了很多种对图像数据进行变换的函数,这些都是在我们进行图像数据读入步骤中必不可少的,下面我们讲解几种最常用的函数,详细的内容还请参考pytorch官方文档(放在文末). data_transforms = transforms.Compose([ transforms.RandomResizedCrop(224), transforms.RandomHorizontalFlip(), transforms.ToTensor(), transforms
-
初识Pytorch使用transforms的代码
首先,这次讲解的tansforms功能,通俗地讲,类似于在计算机视觉流程里的图像预处理部分的数据增强. transforms的原理: 说明:图片(输入)通过工具得到结果(输出),这个工具,就是transforms模板工具,(tool=transforms.ToTensor()具体工具),使用工具result=tool(图片) tansforms的调用与使用,由下图可得: 先创建一个transforms.Tensor(),使用from torchvision import transforms调包
-
Pytoch之torchvision.transforms图像变换实例
transforms.CenterCrop(size) 将给定的PIL.Image进行中心切割,得到给定的size,size可以是tuple,(target_height, target_width).size也可以是一个Integer,在这种情况下,切出来的图片的形状是正方形. size可以为int,也可以为float #定义中心切割 centerCrop = transforms.CenterCrop((img.size[0]/2,img.size[1]/2)) imgccrop = cen
-
Pytorch使用transforms
首先,这次讲解的tansforms功能,通俗地讲,类似于在计算机视觉流程里的图像预处理部分的数据增强. transforms的原理: 说明:图片(输入)通过工具得到结果(输出),这个工具,就是transforms模板工具,(tool=transforms.ToTensor()具体工具),使用工具result=tool(图片) tansforms的调用与使用,由下图可得: 先创建一个transforms.Tensor(),使用from torchvision import transforms调包
-
pytorch中的transforms.ToTensor和transforms.Normalize的实现
目录 transforms.ToTensor transforms.Normalize transforms.ToTensor 最近看pytorch时,遇到了对图像数据的归一化,如下图所示: 该怎么理解这串代码呢?我们一句一句的来看,先看transforms.ToTensor(),我们可以先转到官方给的定义,如下图所示: 大概的意思就是说,transforms.ToTensor()可以将PIL和numpy格式的数据从[0,255]范围转换到[0,1] ,具体做法其实就是将原始数据除以255.另外
-
pytorch 中transforms的使用详解
目录 transforms ToTensor transforms使用 为什么需要tensor数据类型呢? 常见的transforms 内置方法__call__() Normalize Resize Compose transforms 按住Ctrl查看transforms的源码可以知道,transforms就是一个python文件,里面定义了很多类,每一个类都是一个工具在结构那里,可以看到有很多的类 ToTensor Convert a PIL Image or numpy.ndarray t
-
Pytorch中Tensor与各种图像格式的相互转化详解
前言 在pytorch中经常会遇到图像格式的转化,例如将PIL库读取出来的图片转化为Tensor,亦或者将Tensor转化为numpy格式的图片.而且使用不同图像处理库读取出来的图片格式也不相同,因此,如何在pytorch中正确转化各种图片格式(PIL.numpy.Tensor)是一个在调试中比较重要的问题. 本文主要说明在pytorch中如何正确将图片格式在各种图像库读取格式以及tensor向量之间转化的问题.以下代码经过测试都可以在Pytorch-0.4.0或0.3.0版本直接使用. 对py
-
pytorch中的inference使用实例
这里inference两个程序的连接,如目标检测,可以利用一个程序提取候选框,然后把候选框输入到分类cnn网络中. 这里常需要进行一定的连接. #加载训练好的分类CNN网络 model=torch.load('model.pkl') #假设proposal_img是我们提取的候选框,是需要输入到CNN网络的数据 #先定义transforms对输入cnn的网络数据进行处理,常包括resize.totensor等操作 data_transforms=transforms.Compose([trans
-
pytorch中的自定义数据处理详解
pytorch在数据中采用Dataset的数据保存方式,需要继承data.Dataset类,如果需要自己处理数据的话,需要实现两个基本方法. :.getitem:返回一条数据或者一个样本,obj[index] = obj.getitem(index). :.len:返回样本的数量 . len(obj) = obj.len(). Dataset 在data里,调用的时候使用 from torch.utils import data import os from PIL import Image 数
-
pytorch中图像的数据格式实例
计算机视觉方面朋友都需要跟图像打交道,在pytorch中图像与我们平时在matlab中见到的图像数据格式有所不同.matlab中我们通常使用函数imread()来轻松地读入一张图像,我们在变量空间中可看到数据的存储方式是H x W x C的顺序(其中H.W.C分别表示图像的高.宽和通道数,通道数一般为RGB三通道),另外,其中的每一个数据都是[0,255]的整数. 在使用pytorch的时候,我们通常要使用pytorch中torchvision包下面的datasets模块和transforms模
-
Pytorch中的数据集划分&正则化方法
1.训练集&验证集&测试集 训练集:训练数据 验证集:验证不同算法(比如利用网格搜索对超参数进行调整等),检验哪种更有效 测试集:正确评估分类器的性能 正常流程:验证集会记录每个时间戳的参数,在加载test数据前会加载那个最好的参数,再来评估.比方说训练完6000个epoch后,发现在第3520个epoch的validation表现最好,测试时会加载第3520个epoch的参数. import torch import torch.nn as nn import torch.nn.func
-
在Pytorch中简单使用tensorboard
一.tensorboard的简要介绍 TensorBoard是一个独立的包(不是pytorch中的),这个包的作用就是可视化您模型中的各种参数和结果. 下面是安装: pip install tensorboard 安装 TensorBoard 后,这些实用程序使您可以将 PyTorch 模型和指标记录到目录中,以便在 TensorBoard UI 中进行可视化. PyTorch 模型和张量以及 Caffe2 网络和 Blob 均支持标量,图像,直方图,图形和嵌入可视化. SummaryWrite
随机推荐
- Prototype RegExp对象 学习
- 简单的Python的curses库使用教程
- php自定义错误处理用法实例
- VirtualBox 配置虚拟网卡(桥接),实现主机-虚拟机网络互通(图文教程)
- MyBatis启动时控制台无限输出日志的原因及解决办法
- javascript基本类型详解
- js中的preventDefault与stopPropagation详解
- PHP文件缓存内容保存格式实例分析
- ajax动态为a标签href赋值不执行跳转的原因分析及解决
- 用bat批处理实现163邮箱自动登陆的代码[已测]
- jquery实现简单的自动播放幻灯片效果
- 在dell PowerEdge 2950上安装win2003 server的方法介绍
- Android的HTTP扩展包OkHttp中的缓存功能使用方法解析
- 在Java编程中定义方法
- 什么是MVC,好东西啊
- Android使用OkHttp请求自签名的https网站的示例
- C#在Winform开发中使用Grid++报表
- PHP的介绍以及优势详细分析
- Hadoop 2.x与3.x 22点比较,Hadoop 3.x比2.x的改进
- 易语言取mp3相关信息的教学