B站UP主“我是土堆”视频内容

Transforms主要是对数据进行特定的变化

Transforms的结构及其用法

在pycharm输入from torchvision import transforms,按住ctrl然后鼠标点击transforms,可以查看transforms的源代码,如下图所示

点击structure 得到下图

ToTensor是把一个图片或者numpy.ndarray转换成tensor

实战练习一:

#python的用法-》tensor数据类型
#通过 transforms.ToTensor去看两个问题
#1、transforms该如何使用(python)
#2、为什么我们需要Tensor数据类型

ToTensor里面的__call__(self,pic)含义,输入参数pic表示当要使用时传入一个图片(PIL Image)或者numpy.ndarray,然后它会返回一个tensor类型的数据

ctrl+P可以查看需要传入的参数是什么,如下图所示

tensor数据类型可以理解为包装了我们神经网络所需要的一些参数,方便神经网络的训练

tensor数据类型可以理解为包装了我们神经网络所需要的一些参数

代码如下:

from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms
from PIL import Image# 绝对路径:C:\Users\23620\Desktop\TD_torch\data\train\ants_image\0013035.jpg
# 相对路径:data/train/ants_image/0013035.jpgimg_path = "data/train/ants_image/0013035.jpg"
img = Image.open(img_path)writer = SummaryWriter("logs")tensor_trans = transforms.ToTensor()
tensor_img = tensor_trans(img)writer.add_image("Tensor_img",tensor_img)
writer.close()

实战练习二:

compose是把几种不同的transforms组合在一起,下面例子表示输入一张图片,先经过中心裁剪,然后把裁剪后的数据转换成tensor数据类型

Example:>>> transforms.Compose([>>>     transforms.CenterCrop(10),>>>     transforms.ToTensor(),>>> ])

如果一个类定义了内置__call__的话,直接一个对象给输入参数便可

normalize是归一化处理,需要输入每一个通道的均值和标准差,例如,输入的图片是RGB三个通道,则均值和标准差应该为[mean,mean,mean],[std,std,std]

resize可以修改图片的尺寸大小

设置大小写字母都能有提示的方法:file->setting

compose是把几种不同的transforms组合在一起,

​​​​​​​

程序如下:

from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transformswriter = SummaryWriter("logs")
img = Image.open("images/24335309_c5ea483bb8.jpg")
print(img)
#ToTensor
trans_totensor = transforms.ToTensor()
img_tensor = trans_totensor(img)
writer.add_image("ToTensor",img_tensor)#Normalize
print(img_tensor[0][0][0])
trans_norm = transforms.Normalize([1,3,5],[3,2,1])
img_norm = trans_norm(img_tensor)
print(img_norm[0][0][0])
writer.add_image("Normalize",img_norm,1)#resize
print(img.size)
trans_resize = transforms.Resize((512,512))
#img PIL->resize->img_resize PIL
img_resize = trans_resize(img)
#img_resize PIL->totensor->img_reszie tensor
img_resize = trans_totensor(img_resize)
writer.add_image("Resize",img_resize,0)
print(img_resize)#Compose - resize - 2
trans_resize_2 = transforms.Resize(512)
trans_compose = transforms.Compose([trans_resize_2,trans_totensor])
img_resize_2 = trans_compose(img)
writer.add_image("Resize",img_resize_2,1)writer.close()

深度学习(PyTorch)——Transforms的使用方法与技巧相关推荐

  1. pytorch 训练过程acc_深度学习Pytorch实现分类模型

    今天将介绍深度学习中的分类模型,以下主要介绍Softmax的基本概念.神经网络模型.交叉熵损失函数.准确率以及Pytorch实现图像分类.01Softmax基本概念 在分类问题中,通常标签都为类别,可 ...

  2. 【卷积神经网络CNN 实战案例 GoogleNet 实现手写数字识别 源码详解 深度学习 Pytorch笔记 B站刘二大人 (9.5/10)】

    卷积神经网络CNN 实战案例 GoogleNet 实现手写数字识别 源码详解 深度学习 Pytorch笔记 B站刘二大人 (9.5/10) 在上一章已经完成了卷积神经网络的结构分析,并通过各个模块理解 ...

  3. 李沐动手学深度学习(pytorch版本)d2lzh_pytorch包的缺少安装问题

    学习深度学习时候,很多人参考的是李沐的动手学深度学习Pytorch版本(附上官方地址:https://tangshusen.me/Dive-into-DL-PyTorch/#/). 在学习3.5.1节 ...

  4. 【动手学深度学习PyTorch版】27 数据增强

    上一篇请移步[动手学深度学习PyTorch版]23 深度学习硬件CPU 和 GPU_水w的博客-CSDN博客 目录 一.数据增强 1.1 数据增强(主要是关于图像增强) ◼ CES上的真实的故事 ◼ ...

  5. 深度学习PyTorch笔记(12):线性神经网络——softmax回归

    深度学习PyTorch笔记(12):线性神经网络--softmax回归 6 线性神经网络--softmax回归 6.1 softmax回归 6.1.1 概念 6.1.2 softmax运算 6.2 图 ...

  6. torch的拼接函数_从零开始深度学习Pytorch笔记(13)—— torch.optim

    前文传送门: 从零开始深度学习Pytorch笔记(1)--安装Pytorch 从零开始深度学习Pytorch笔记(2)--张量的创建(上) 从零开始深度学习Pytorch笔记(3)--张量的创建(下) ...

  7. 动手学深度学习Pytorch Task01

    深度学习目前以及未来都有良好的发展前景.正值疫情期间,报名参加了动手学深度学习pytorch版的公开课,希望在以后的学习生活中能够灵活运用学到的这些知识. 第一次课主要包含三个部分:线性回归.soft ...

  8. 伯禹公益AI《动手学深度学习PyTorch版》Task 07 学习笔记

    伯禹公益AI<动手学深度学习PyTorch版>Task 07 学习笔记 Task 07:优化算法进阶:word2vec:词嵌入进阶 微信昵称:WarmIce 优化算法进阶 emmmm,讲实 ...

  9. 伯禹公益AI《动手学深度学习PyTorch版》Task 03 学习笔记

    伯禹公益AI<动手学深度学习PyTorch版>Task 03 学习笔记 Task 03:过拟合.欠拟合及其解决方案:梯度消失.梯度爆炸:循环神经网络进阶 微信昵称:WarmIce 过拟合. ...

  10. 【动手学深度学习PyTorch版】6 权重衰退

    上一篇移步[动手学深度学习PyTorch版]5 模型选择 + 过拟合和欠拟合_水w的博客-CSDN博客 目录 一.权重衰退 1.1 权重衰退 weight decay:处理过拟合的最常见方法(L2_p ...

最新文章

  1. centos 7 mysql界面管理器_centos7安装mysql5.7.24,并使用system管理mysql
  2. android evaluater_android – 带有test.R.java的Robolectric
  3. idea工具使用总结
  4. Mac下布置appium环境
  5. java横线_知识点:java一些方法会有横线?以Date 过期方法为例
  6. ELK 中的elasticsearch 集群的部署
  7. windows 安装 python3
  8. MySQL循环语句之while循环测试
  9. 关于CRUD业务逻辑实现的图形理解
  10. 汇编学习--7.9--寄存器
  11. luogu P1379 八数码难题(A*算法入门详细讲解)
  12. Redis学习笔记·
  13. 微信支付分 - 查询支付分订单API
  14. 冈萨雷斯《数字图像处理》学习笔记(七)小波变换和多分辨率处理
  15. 哪部电影是技术人员最应该看的?
  16. 局域网下微信无法连接到服务器,微信无法连接到服务器怎么办
  17. 爱心信封打开ui动画特效
  18. K65 Flex_CAN模块初始化
  19. 知道挖掘搜索引擎关键字的步骤吗?
  20. 用HTML+CSS代码写一个3D旋转相册

热门文章

  1. 视频里面的音频怎么提取成mp3?
  2. Cadence 将原理图导出PDF格式
  3. 重装系统(win7)
  4. 怎样用excel按进行分类求和,最后再根据一列对其他列进行排序
  5. 王者舰队服务器维护需要几天,王者舰队怎么快速获取金币 金币快速获得方法...
  6. powerquery分组_power query 分组合并展示
  7. php+vue基于微信小程序的叽喳音乐播放小程序
  8. 目标跟踪:在视频序列中跟踪特定对象的位置和状态
  9. 我也写了部lt;西游记gt;
  10. 基于Html+Css+javascript的网页制作(旅游主题)