模型预处理的ToTensor和Normalize
模型预处理的ToTensor和Normalize
flyfish
import torch
import numpy as np
from torchvision import transformsmean = (0.485, 0.456, 0.406)
std = (0.229, 0.224, 0.225)# data0 =np.random.randint(0,255,size = [4,5,3],dtype='uint8')
# data0 = data0.astype(np.float64)
data0 = np.random.random((4, 5, 3)) # H x W x C
data0 = np.round(data0,4)
print(data0.shape)
print(data0)data1 = transforms.ToTensor()(data0)
print(data1.shape) # C x H x W
print(data1)
data2 = transforms.Normalize(mean, std)(data1)
print(data2)
ToTensor 是数据维度发生变化H x W x C 变为 C x H x W,数值没有变化
Normalize是 (data - mean) / std
使用numpy实现验证
data1 = np.transpose(data0, (2, 0, 1))
print(data1.shape)
_std = np.array(std).reshape((3, 1, 1))
_mean = np.array(mean).reshape((3, 1, 1))data2 = (data1 - _mean) / _stdprint(data2)
原始数据的形状和内容 可以是图像的高度,宽度,通道
(4, 5, 3)
[[[0.8284 0.3419 0.6621][0.59 0.2306 0.4112][0.0636 0.406 0.2778][0.9551 0.2097 0.7681][0.3097 0.642 0.1968]][[0.722 0.9844 0.4942][0.1847 0.2435 0.3691][0.658 0.5643 0.9468][0.4002 0.7807 0.4393][0.2461 0.9049 0.0585]][[0.2606 0.067 0.6186][0.284 0.8524 0.2102][0.0447 0.0209 0.1313][0.0587 0.594 0.1016][0.6942 0.4514 0.7125]][[0.8787 0.7917 0.1181][0.9044 0.7948 0.3599][0.1706 0.7463 0.899 ][0.0758 0.2224 0.5447][0.3336 0.6096 0.3065]]]
ToTensor 后的形状和内容
torch.Size([3, 4, 5])
tensor([[[0.8284, 0.5900, 0.0636, 0.9551, 0.3097],[0.7220, 0.1847, 0.6580, 0.4002, 0.2461],[0.2606, 0.2840, 0.0447, 0.0587, 0.6942],[0.8787, 0.9044, 0.1706, 0.0758, 0.3336]],[[0.3419, 0.2306, 0.4060, 0.2097, 0.6420],[0.9844, 0.2435, 0.5643, 0.7807, 0.9049],[0.0670, 0.8524, 0.0209, 0.5940, 0.4514],[0.7917, 0.7948, 0.7463, 0.2224, 0.6096]],[[0.6621, 0.4112, 0.2778, 0.7681, 0.1968],[0.4942, 0.3691, 0.9468, 0.4393, 0.0585],[0.6186, 0.2102, 0.1313, 0.1016, 0.7125],[0.1181, 0.3599, 0.8990, 0.5447, 0.3065]]], dtype=torch.float64)
Normalize 后的形状和内容
tensor([[[ 1.4996, 0.4585, -1.8402, 2.0528, -0.7655],[ 1.0349, -1.3114, 0.7555, -0.3703, -1.0432],[-0.9799, -0.8777, -1.9227, -1.8616, 0.9135],[ 1.7192, 1.8314, -1.3729, -1.7869, -0.6611]],[[-0.5094, -1.0063, -0.2232, -1.0996, 0.8304],[ 2.3589, -0.9487, 0.4835, 1.4496, 2.0040],[-1.7366, 1.7696, -1.9424, 0.6161, -0.0205],[ 1.4987, 1.5125, 1.2960, -1.0429, 0.6857]],[[ 1.1382, 0.0231, -0.5698, 1.6093, -0.9298],[ 0.3920, -0.1640, 2.4036, 0.1480, -1.5444],[ 0.9449, -0.8702, -1.2209, -1.3529, 1.3622],[-1.2796, -0.2049, 2.1911, 0.6164, -0.4422]]], dtype=torch.float64)
使用numpy实现验证的结果
(3, 4, 5)
[[[ 1.49956332 0.45851528 -1.84017467 2.05283843 -0.76550218][ 1.0349345 -1.31135371 0.75545852 -0.37030568 -1.04323144][-0.97991266 -0.87772926 -1.92270742 -1.86157205 0.91353712][ 1.71921397 1.83144105 -1.37292576 -1.78689956 -0.66113537]][[-0.509375 -1.00625 -0.22321429 -1.09955357 0.83035714][ 2.35892857 -0.94866071 0.48348214 1.44955357 2.00401786][-1.73660714 1.76964286 -1.94241071 0.61607143 -0.02053571][ 1.49866071 1.5125 1.29598214 -1.04285714 0.68571429]][[ 1.13822222 0.02311111 -0.56977778 1.60933333 -0.92977778][ 0.392 -0.164 2.40355556 0.148 -1.54444444][ 0.94488889 -0.87022222 -1.22088889 -1.35288889 1.36222222][-1.27955556 -0.20488889 2.19111111 0.61644444 -0.44222222]]]
两者除了保留小数位数不同外,其他一致
相关文章:
模型预处理的ToTensor和Normalize
模型预处理的ToTensor和Normalize flyfish import torch import numpy as np from torchvision import transformsmean (0.485, 0.456, 0.406) std (0.229, 0.224, 0.225)# data0 np.random.randint(0,255,size [4,5,3],dtypeuint8) # data0 data0.astype(np.float64) da…...
nodejs express multer 保存文件名为中文时乱码,问题解决 originalname
nodejs express multer 保存文件名为中文时乱码,问题解决 originalname 一、问题描述 用 express 写了个后台,在接收文件并保存的时候 multer 接收到的文件名为乱码。 二、解决 找了下解决方法,在 github 的 multer issue 中找到了答案 参…...
大数据之LibrA数据库系统告警处理(ALM-12035 恢复任务失败后数据状态未知)
告警解释 执行恢复任务失败后,系统会自动回滚,如果回滚失败,可能会导致数据丢失等问题,如果该情况出现,则上报告警,如果下一次该任务恢复成功,则恢复告警。 告警属性 告警ID 告警级别 可自动…...
汽车生产RFID智能制造设计解决方案与思路
汽车行业需求 汽车行业正面临着快速变革,传统的汽车制造方式正在向柔性化、数字化、自动化和数据化的智能制造体系转变,在这个变革的背景下,汽车制造企业面临着物流、生产、配送和资产管理等方面的挑战,为了应对这些挑战…...
讲解机器学习中的 K-均值聚类算法及其优缺点。
K-均值聚类算法是一种无监督学习算法,常用于对数据进行聚类分析。其主要步骤如下: 首先随机选择K个中心点(质心)作为初始聚类中心。 对于每一个样本,计算其与每一个中心点的距离,将其归到距离最近的中心点…...
开源DB-GPT实现连接数据库详细步骤
官方文档:欢迎来到DB-GPT中文文档 — DB-GPT 👏👏 0.4.1 第一步:安装Minicoda https://docs.conda.io/en/latest/miniconda.html 第二步:安装Git Git - Downloading Package 第三步:安装embedding 模型到…...
java学习part01
15-Java语言概述-单行注释和多行注释的使用_哔哩哔哩_bilibili 1.命令行 javac编译出class文件 然后java运行 2. java文件每个文件最多一个public类 3.java注释 单行注释 // 多行注释 文档注释 文档注释内容可以被JDK提供的工具javadoc所解析,生成一套以网页文…...
渗透测试学习day3
文章目录 靶机:DancingTask 1Task 2Task 3Task 4Task 5Task 6Task 7Task 8 靶机:RedeemerTask 1Task 2Task 3Task 4Task 5Task 6Task 7Task 8Task 9Task 10Task 11 靶机:AppointmentTask 1Task 2Task 3Task 4Task 5Task 6Task 7Task 8Task 9T…...
【Proteus仿真】【Arduino单片机】数码管显示
文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器,使用TM1637、共阳数码管等。 主要功能: 系统运行后,数码管显示数字、字符。 二、软件设计 /* 作者:嗨小易&am…...
【Bug】Python利用matplotlib绘图无法显示中文解决办法
一,问题描述 当利用matplotlib进行图形绘制时,图表标题,坐标轴,标签中文无法显示,显示为方框,并报错 运行窗口报错: 这是中文字体格式未导入的缘故。 二,解决方案 在代码import部…...
Docsify 顶部的导航是如何配置
如下图,我们在 Docsify 的文档中配置了一个顶部导航。 下面的步骤对顶部导航的配置进行简要介绍。 配置 有 2 个地方需要这个地方进行配置。 首先需要在 index.html 文件中的 loadNavbar: true, 配置上。 然后再在项目中添加一个 _navbar.md 文件。 在这个文件中…...
最详细的LightGBM参数介绍与深入分析
前言 我使用LightGBM有一段时间了,它一直是我处理大多数表格数据问题的首选算法。它有很多强大的功能,如果你还没有看过的话,我建议你去了解一下。 但我一直对了解哪些参数对性能影响最大,以及如何调整LightGBM参数以发挥最大作用…...
blender动画制作全流程软件
blender官网下载地址 Download — blender.org Blender是一款功能强大的免费开源的3D动画制作软件。它具有广泛的功能和工具,适用于从简单的2D动画到复杂的3D渲染和特效的各种需求。 以下是Blender的一些主要特点: 建模工具:Blender提供了一…...
mac的可清除空间(时间机器)
看到这个可用82GB(458.3MB可清除) 顿时感觉清爽,之前的还是可用82GB(65GB可清除),安装个xcode都安装不上,费解半天,怎么都解决不了这个问题,就是买磁盘情理软件也解决不了…...
【深度学习】可交互讲解图神经网络GNN
在正式开始前,先找准图神经网络GNN(Graph Neural Network)的位置。 图神经网络GNN是深度学习的一个分支。 深度学习的四个分支对应了四种常见的数据格式,前馈神经网络FNN处理表格数据,表格数据可以是特征向量,卷积神经网络CNN处理…...
网工内推 | 运维工程师,软考认证优先,全额社保
01 北京中科网威信息技术有限公司 招聘岗位:运维工程师 职责描述: 1 熟悉网络安全标准,等级保护管理制度 2 负责等级保护管理制度的的企业管理要求编写; 3 熟系网络组网和相关安全产品; 4 负责用户需求挖掘、分析和…...
查找或替换excel换行符ctrl+j和word中的换行符^p,^l
一、excel中 直接上图。使用ctrlh调出替换,查找内容里按ctrlj(会出现一个闪的小点),即为换行符。 二、word中 在word中,^p和^l分别代表换行符(enter)和手动换行符(使用shiftenter&…...
pytorch_神经网络构建5
文章目录 生成对抗网络自动编码器变分自动编码器重参数GANS自动编码器变分自动编码器gans网络Least Squares GANDeep Convolutional GANs 生成对抗网络 这起源于一种思想,假如有一个生成器,从原始图片那里学习东西,一个判别器来判别图片是真实的还是生成的, 假如生成的东西能以…...
安卓常见设计模式5------桥接模式(Kotlin版)
1. W1 是什么,什么是桥接模式? 桥接模式是一种结构性模式。 桥接模式旨在将抽象与实现解耦,使它们可以独立地变化。可以这么理解,面向对象编程是单继承多实现的,如果我们有一个可扩展类,和多个相关的可扩展…...
tomcat web.xml文件中的session-config
<session-config>这个元素为该应用中创建的所有session定义默认超时时间,单位是分钟。这个值必须是整数。如果是0或者负数,表示不超时。如果该元素没有设置,容器设置一个默认值。 例如: <session-config><session…...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...
02.运算符
目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&:逻辑与 ||:逻辑或 !:逻辑非 短路求值 位运算符 按位与&: 按位或 | 按位取反~ …...
