Transform

torchvision.transforms中定义了一系列数据转换形式,有PILImage,numpy,Tensor间相互转换,还能对数据进行处理。

在torchvision.datasets下载数据的时候,作为一个参数传入,对下载的数据进行处理

1. ToTensor()

torchvision.transforms.ToTensor()

把一个取值范围是[0,255]的PIL.Image转换成Tensor

shape 为(H,W,C)的numpy.ndarray,转换成形状为[C,H,W],取值范围是[0,1]的Tensor

把一个取值范围是[0,255]的PIL.Image转换成Tensor

import numpy as np
from PIL import Image
from torchvision.transforms import  transforms
image=Image.open(r"./image/test1.jpg")
c=transforms.ToTensor()(image)
print(c.shape)

shape为(H,W,C)的numpy.ndarray,转换成形状为[C,H,W],取值范围是[0,1.0]的Tensor

n_out = np.random.rand(100,100,3)
print(n_out.dtype)t_out = transforms.ToTensor()(n_out)
print(t_out.type())

自己写的代码测试一下

import numpy as np
import torch
from PIL import Image
from torchvision.transforms import transformsimage = Image.open(r"./image/test1.jpg")a = torch.FloatTensor(np.array(image).transpose(2, 0, 1) / 255.0)b = transforms.Compose([transforms.ToTensor()
])(image)print(a == b)

结果

tensor([[[True, True, True,  ..., True, True, True],[True, True, True,  ..., True, True, True],[True, True, True,  ..., True, True, True],...,[True, True, True,  ..., True, True, True],[True, True, True,  ..., True, True, True],[True, True, True,  ..., True, True, True]],[[True, True, True,  ..., True, True, True],[True, True, True,  ..., True, True, True],[True, True, True,  ..., True, True, True],

2. ToPILImage()

ndarray转换成PILImage

Tensor转换成PILImage

将ndarray转化成PILImage

#初始化随机数种子
np.random.seed(0)data = np.random.randint(0, 255, 300)
print(data.dtype)
n_out = data.reshape(10,10,3)#强制类型转换
n_out = n_out.astype(np.uint8)
print(n_out.dtype)img2 = transforms.ToPILImage()(n_out)
img2.show()

将Tensor转化成PILImage

t_out = torch.randn(3,10,10)
img1 = transforms.ToPILImage()(t_out)
img1.show()

torchvision.transforms相关推荐

  1. torchvision.transforms 的CenterCrop():在图片的中间区域进行裁剪

    pytorch中transform函数 torchvision.transforms是pytorch中的图像预处理包 一般用Compose把多个步骤整合到一起: 比如说 transforms.Comp ...

  2. 对Tensor进行变换 class torchvision.transforms.Normalize(mean, std) 给定均值:(R,G,B) 方差:(R,G,B),将会把Tensor正则化

    对Tensor进行变换 class torchvision.transforms.Normalize(mean, std) 给定均值:(R,G,B) 方差:(R,G,B),将会把Tensor正则化.即 ...

  3. torchvision.transforms包的使用

    torchvision.transforms是专门用来对数据进行相关的处理.我们可完成的操作如下: 归一化 PIL.Image / numpy.ndarray 与Tensor的相互转化 对PIL.Im ...

  4. 【小白学PyTorch】7.最新版本torchvision.transforms常用API翻译与讲解

    机器学习炼丹术]的学习笔记分享 <<小白学PyTorch>> 小白学PyTorch | 6 模型的构建访问遍历存储(附代码) 小白学PyTorch | 5 torchvisio ...

  5. 【pytorch 】torchvision.transforms.CenterCrop==>从图像中心裁剪图片

    transforms.CenterCrop torchvision.transforms.CenterCrop(size) 功能:从图像中心裁剪图片 size: 所需裁剪的图片尺寸 transform ...

  6. PyTorch 1.0 中文文档:torchvision.transforms

    译者:BXuan694 transforms包含了一些常用的图像变换,这些变换能够用Compose串联组合起来.另外,torchvision提供了torchvision.transforms.func ...

  7. pytorch torchvision.transforms.ToTensor

    API 将Shape=(HWC)的PIL.Image或者numpy.ndarray转换成shape=(CHW)的范围在[0.0,1.0]的torch.FloatTensor 像素值范围从[0, 255 ...

  8. pytorch torchvision.transforms.Resize

    API CLASS torchvision.transforms.Resize(size, interpolation=2) 参数 描述 size (sequence or int) 如果size是s ...

  9. pytorch torchvision.transforms.CenterCrop

    应用 以图片中心进行裁剪 import torchivision.transforms import PIL.Image as Image import torchvision.transforms# ...

  10. pytorch的图像通道变换,torchvision.transforms.Compose,T.ToTensor

    torchvision.transforms.ToTensor 显示的二值化图片如图所示, 将numpy的图片shape是hwc(高,宽,通道)格式的图片矩阵转换为chw格式的torch.tensor ...

最新文章

  1. SAP有用的知识(持续更新)
  2. php获取网页标题接口,PHP获取网页标题的3种实现方法代码实例
  3. 你知道脑机接口中的“后门“攻击吗?它真的有可能在现实中实现
  4. 注册与验证码php源代码,PHP验证码处理源代码
  5. 用unsigned char 表示字节
  6. 前端笔记-JavaScript中放json数组要注意的地方(构造灵活的echarts)
  7. Python的基本编码规范
  8. Linux 内核版本命名
  9. POJ1088(记忆搜索加dp)
  10. python 图表工具_7 款 Python 数据图表工具的比较
  11. windows2008 网络相关
  12. php 批量上传图片插件,diyUpload - jQuery多张图片批量上传插件
  13. Ffplay源码read_thread解读(一)
  14. [Mac软件推荐] paste - 好用的剪切板记录增强工具
  15. 如何给一小段视频添加音乐
  16. 国际标准书号 (International Standard Book Number, ISBN)是专门为识别图书等文献而设计的国际编号
  17. Python+Vue计算机毕业设计牙无忧6ayy4(源码+程序+LW+部署)
  18. 无线网络 笔记本连接正常上网,手机之类的就不能上网
  19. 最优化方法(学习笔记)-第十一章等式约束优化问题
  20. SSM框架的介绍与搭建

热门文章

  1. Android NDK之JNI陷阱
  2. and5.1PowerManagerService深入分析(四)PMS与Display模块
  3. iOS ffmpeg + libfdk-aac
  4. Vue之ElementUI导航菜单
  5. python之random.shuffle
  6. tensorflow之random_normal
  7. LED显示驱动(七):图层基本测试总结
  8. wordpress 数据库详解
  9. 飞腾服务器自带的kvm管理,领存技术飞腾FT2000+ 2U 12盘位存储服务器
  10. java placeholder_java swing JTextField设置PlaceHolder