目录

一、Transforms是什么?

二、使用步骤

1.引入库

2.tensor数据类型

2.1 transforms该如何使用

2.2 为什么需要tensors数据类型。


一、Transforms是什么?

Transforms主要是对图片进行一些变换,一般用于数据预处理,数据在读取到pytorch之后通常都需要对数据进行预处理,包括尺寸缩放、转换张量、数据中心化或标准化等等,这些操作都是通过transforms进行的。

二、使用步骤

1.引入库

代码如下(示例):

from torchvision import transforms

从torchvision中引用transforms函数。

注:transforms.py就像是一个工具箱,里面有很多工具:
 ToTensor()的使用:这个模块的主要作用主要就是将 PIL Image 或者numpy.ndarry 的图像类型转变成tensor的类型格式;
 Resize()的使用:输入一张图片,将图片转变为指定的大小。如果只传入一个参数,就将最小边变成size,最大边等比例变成原来最小边的倍数;

2.tensor数据类型

通过transforms.Totensor去解决两个问题:(1)transforms该如何使用;(2)我们为什么需要tensors数据类型。

2.1 transforms该如何使用

从transforms中选择一个class,首先对它创建,根据创建的工具知道需要什么东西,返回出结果。
可以理解为,transforms.py是一个工具箱,里面有很多工具,像ToTensor/Resize等,可以将这些工具看成模板,利用这些模板来创建我们需要的工具,根据这些工具的使用方法,输入数据,输出结果。

代码如下(示例):

(PIL Image数据处理):
from PIL import Image
from torchvision import transformsimg_path = "train/ants/0013035.jpg"
img = Image.open(img_path)tensor_trans = transforms.ToTensor() # 引用transforms中的totensor,返回的是totensor的
对象。可以理解为用tensor_trans 接收totensor的对象。
tensor_img = tensor_trans(img)  # 将img图片转换成tensor格式。(鼠标放括号里,ctrl+p可
以查看需要什么括号里需要什么参数。)
print(tensor_img)  # 查看tensor_img的数据类型numpy.ndarrary数据处理:(最常用的是opencv)
可以在python console中调试,代码如下:
import cv2
img_path = "train/ants/0013035.jpg"
cv_img = cv2.imread(img_path)
print(type(cv_img))
<class 'numpy.ndarray'>

2.2 为什么需要tensors数据类型。

因为在神经网络当中,肯定要将数据转化为tensor的类型,才能继续处理,进行训练。

Transforms的结构和用法相关推荐

  1. python scatter参数详解_matplotlib.pyplot.scatter散点图结构及用法||参数详解

    matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=N ...

  2. Shell中case判断结构的用法笔记

    Shell中case判断结构的用法 case判断的用法和if/elif/else结构的用法等价,case判断结构也用于多种可能情况下的分支选择. 语法结构如下: case var in var1) c ...

  3. 《电子元器件的可靠性》——2.5节威布尔分布及其概率纸的结构和用法

    本节书摘来自华章社区<电子元器件的可靠性>一书中的第2章,第2.5节威布尔分布及其概率纸的结构和用法,作者王守国,更多章节内容可以访问云栖社区"华章社区"公众号查看 2 ...

  4. python for循环流程图_python for循环语句结构与用法实例(图)

    想必大家都知道python循环语句吧,python循环语句有多种,比如for循环.while循环.if.else等等,今天就给大家讲讲for循环语句.for循环语句是python中的一个循环控制语句, ...

  5. python while循环语句-python while循环控制流语句结构与用法

    python while循环语句和for语句都是python的主要循环结构.while语句是python中最通用的迭代结构,也是一个条件循环语句.while与if语句有哪些不同,标准语法结构及循环使用 ...

  6. Linux中Shell循环结构for用法笔记

    Shell中可以使用for做固定次数循环的处理.常见的for循环用法主要有以下几种: 1.带列表的for循环 语法结构: for item in (list) do command done 示例: ...

  7. 速学bs4.BeautifulSoup()结构及用法

    bs4 官方文档 BeautifulSoup4被移植到bs4中,就是说使用时需要from bs4 import BeautifulSoup Beautiful Soup 4.2.0 中文文档 HTML ...

  8. 什么是LinkedList?什么时候使用它呢?Java LinkedList结构、用法及源码解析

    前言:我们学习java时都知道ArrayList实现List接口,LinkedList也实现List接口,但我们平时用的时候LinkedList却很少被用到.那么,LinkedList什么时候该用到呢 ...

  9. 【C#】第3章学习要点(三)--常用类和结构的用法

    分类:C#.VS2015 创建日期:2016-06-19 使用教材:(十二五国家级规划教材)<C#程序设计及应用教程>(第3版) 一.DateTime结构和TimeSpan结构 DateT ...

  10. Pytorch transforms.Resize()的简单用法

    简单来说就是调整PILImage对象的尺寸,注意不能是用io.imread或者cv2.imread读取的图片,这两种方法得到的是ndarray. 将图片短边缩放至x,长宽比保持不变: transfor ...

最新文章

  1. Git 修改用户名和邮箱
  2. JavaScript实时更新中国标准时间
  3. Teams Bot如何判断用户所在的时区
  4. 具有固定名称mysql.data_SQLServer数据库之未找到具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序的实体框架 解决方案...
  5. 手机充满电不拔有什么影响吗?
  6. 计算机二级基础知识微盘,计算机二级C++基础知识(整理版).pdf
  7. Docker教程小白实操入门(20)--如何删除数据卷
  8. 系统运行后修改linux系统时区
  9. 【Gym-101889 D】Daunting device【分块】
  10. 安卓机型刷写第三方twrp 刷写第三方rom的教程和一些问题解决
  11. Java合并两个有序数组
  12. 模拟电路——集成运算放大器(1)
  13. 如何将微信公众号上的文章下载下来?
  14. CAD的DXF解析中LWPOLYLINE多线段凸度的相关概念和弧度转换
  15. neutron服务宕机导致nova无法创建云主机
  16. 解决“windows已经阻止此软件因为无法验证发行者”方法
  17. 引导未来:区块链经济七大设计原则
  18. PHP网约车H5打车系统源码 分为乘客端和司机端
  19. 转——解决游戏王DL的steam版锁区问题
  20. excel方差函数和均方差函数使用介绍

热门文章

  1. 移动端 web 开发的设计稿与工作流
  2. 孪生再世代表数字几_正文 第六百一十七章 原来是孪生姐妹?
  3. iOS百度地图路径规划功能(对官网文档的理解)
  4. 北京地铁2015年规划(清晰、大图、可下载)
  5. 老王论坛蓝色大屏幕调节亮度
  6. vc中cout如何解除fixed控制_C++ fixed用法详解
  7. sendcloud历险记
  8. C语言的奇技淫巧(1-50)
  9. 四连测总结(WYL)
  10. Chia 云P图 全套解决方案