1、transforms.ToTensor()作用

ToTensor()shape(H, W, C)nump.ndarrayimg转为shape(C, H, W)tensor,其将每一个数值归一化到[0,1],其归一化方法比较简单,直接除以255即可。具体可参见如下代码:

import torchvision.transforms as transforms
import numpy as np
from __future__ import print_function# 定义转换方式,transforms.Compose将多个转换函数组合起来使用
transform1 = transforms.Compose([transforms.ToTensor()])  #归一化到(0,1),简单直接除以255# 定义一个数组
d1 = [1,2,3,4,5,6]
d2 = [4,5,6,7,8,9]
d3 = [7,8,9,10,11,14]
d4 = [11,12,13,14,15,15]
d5 = [d1,d2,d3,d4]
d = np.array([d5,d5,d5],dtype=np.float32)
d_t = np.transpose(d,(1,2,0)) # 转置为类似图像的shape,(H,W,C),作为transform的输入
# 查看d的shape
print('d.shape: ',d.shape, '\n', 'd_t.shape: ', d_t.shape)# 输出d.shape: (3, 4, 6) d_t.shape: (4, 6, 3)d_t_trans = transform1(d_t) # 直接使用函数归一化# 手动归一化,下面的两个步骤可以在源码里面找到
d_t_temp = torch.from_numpy(d_t.transpose((2,0,1)))
d_t_trans_man = d_t_temp.float().div(255)print(d_t_trans.equal(d_t_trans_man))# 输出True

2、transforms.Normalize()作用

transforms.Compose([transforms.ToTensor()])中加入transforms.Normalize(),如下所示:transforms.Compose([transforms.ToTensor(),transforms.Normalize(std=(0.5,0.5,0.5),mean=(0.5,0.5,0.5))]),则其作用就是先将输入归一化到(0,1),再使用公式"(x-mean)/std",将每个元素分布到(-1,1)

transform2 = transforms.Compose([transforms.ToTensor(),transforms.Normalize(std=(0.5,0.5,0.5),mean=(0.5,0.5,0.5))])# 归一化到(0,1)之后,再 (x-mean)/std,归一化到(-1,1),数据中存在大于mean和小于meand_t_trans_2 = transform2(d_t)
d_t_temp1 = torch.from_numpy(d_t.transpose((2,0,1)))
d_t_temp2 = d_t_temp1.float().div(255)
d_t_trans_man2 = d_t_temp2.sub_(0.5).div_(0.5)
print(d_t_trans_2.equal(d_t_trans_man2))#输出True

可我看很多代码里面是这样的:
torchvision.transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
这一组值是怎么来的?
这一组值是从imagenet训练集中抽样算出来的。

3.参考

https://blog.csdn.net/u014484247/article/details/79997357

transforms.ToTensor()与transforms.Normalize()函数解析相关推荐

  1. 浅谈对transforms.ToTensor()和transforms.Normalize()函数的理解

    前言 在进行tensor图片数据进行视觉时,一般会进行预处理操作,这个时候就需要用到ToTensor()和Normalize()这两个函数. 提示:以下是本篇文章正文内容,下面案例可供参考 一.ToT ...

  2. pytorch中的transforms.ToTensor和transforms.Normalize理解

  3. transforms.Compose和transforms.ToTensor()

    1.图像处理.转不同格式显示 import torch import torchvision import torchvision.transforms as transforms import cv ...

  4. transforms.Compose,transforms.ToTensor(),transforms.Normalize()的含义与原理

    transforms.Compose,transforms.ToTensor(),transforms.Normalize()的含义与原理 1.问题描述 问题来源于pytorch实现CNN神经网络的示 ...

  5. Pytorch下transforms.ToTensor(),transforms.Normalize()详解,及代码实现和复原

    一.在数据处理时,我们要经常用到transforms.ToTensor(),transforms.Normalize()语句,将图像数据转换为tensor并标准化到[-1,1]之间. 其计算过程为: ...

  6. Pytorch图片转tensor/图片转tensor转图片(numpy array)(transforms.ToTensor())(opencv形式转tensor)

    注意,读取图片成numpy array的范围是[0,255]是uint8            而转成tensor的范围就是[0,1.0], 是float 把图片转成成torch的tensor数据,一 ...

  7. torchvision.transforms.ToTensor(细节)对应caffe的转换

    目录 1)torchvision.transforms.ToTensor 2)pytorch的图像预处理和caffe中的图像预处理 写这篇文章的初衷,就是同事跑过来问我,pytorch对图像的预处理为 ...

  8. 关于transforms.ToTensor()

    代码中,数据的维度是(48,48,3) 过了transforms后,进入模型的输入tensor为(1,3,48,48) 感觉到很疑惑,transform怎么会改变输入的维度呢, transform = ...

  9. torchvision.transforms.ToTensor的用法

    #torchvision.transforms.ToTensor 对于一个图片img,调用ToTensor转化成张量的形式,发生的不是将图片的RGB三维信道矩阵变成tensor 图片在内存中以byte ...

最新文章

  1. 【最大团】【HDU1530】【Maximum Clique】
  2. 程序员面试题精选100题(30)-赋值运算符重载函数[C/C++/C#]
  3. 河北师范大学计算机专业保研率,河北省内13所高校2021届保研率一览
  4. java while do_java中while和do-while的总结
  5. 快准狠!Intel论文揭示自家车牌识别算法:LPRNet
  6. WP8.1学习系列(第二章)——Toast通知
  7. python制作个人信息管理系统_python实现简易学生信息管理系统
  8. Ubuntu 14.04 英文版安装中文输入法
  9. BZOJ 4826: [Hnoi2017]影魔 单调栈 主席树
  10. 西安计算机二级12月,2017年12月计算机二级MS Office习题答案(一)
  11. 【原】React中,map出来的元素添加事件无法使用
  12. C++ cmake 命令用法
  13. 【杂谈】真相揭开有点吃惊:杨利伟出舱时
  14. 关于对比型数据与分布型数据的图表可视化
  15. 2021-CISCN-fianl-ezj4va
  16. 计算机组成原理相关话题,“计算机组成原理”教学改革研究
  17. SQL中查询MySQL的版本
  18. VMware虚拟机下Centos7 桥接方式网络配置完整步骤
  19. 计算机打不开sai文件夹,解决 Excel打开桌面文件 显示“无法找到C:\Documents.xls。请检查文件名的...”错误...
  20. 计算机网课计划,计算机基础课程授课计划表.docx

热门文章

  1. 在线流程图和思维导图开发技术详解(五)
  2. Python实现文字转图片
  3. Python撩妹实战——教你用微信每天给女朋友说晚安
  4. Typora搭建图床解决上传md文档图片无法加载的问题
  5. 《位置大数据隐私管理》—— 1.4 隐私泄露威胁
  6. yarn 出现error An unexpected error occurred错误的解决办法
  7. Linux虚拟声卡有吱吱声,解决Win7+8系统爆音有杂音吱吱声
  8. win python 判断 所有 子进程 结束_python 多进程如何终止或重启子进程?
  9. Java核心技术卷一读书笔记
  10. hdu4417 Super Mario(树状数组+离线区间操作)