标准化

在我们把数据导入模型进行训练的时候,我们首先要对数据进行标准化处理,为什么需要进行标准化呢?
简要地说,为了保证网络可以良好的收敛,在不清楚各个维度的相对重要程度之前,标准化使得输入的各个维度分布相近,从而允许我们在网络训练过程中,对各个维度“一视同仁”(即设置相同的学习率、正则项系数、权重初始化、以及激活函数)。反过来,当我们使用全局相同的学习率、权重初始化、以及激活函数等网络设置时,方差更大的维度将获得更多的重视。
常用的标准化分为三种:

  • 规范化方法
  • 正规化方法
  • 归一化

正规化方法的标准化的公式如下:

x ̅ 为均值,s为标准差,标准化后我们数据的均值为0,方差为1
想要进行标准化,首先需要求出均值和标准差,对于猫狗数据集我们通过程序求出均值和标准差:

import numpy as np
import cv2
import os
from PIL import Image# img_h, img_w = 32, 32
img_h, img_w = 32, 32    #经过处理后你的图片的尺寸大小
means, stdevs = [], []
img_list = []imgs_path = r".\test"    #数据集的路径采用绝对引用
imgs_path_list = os.listdir(imgs_path)len_ = len(imgs_path_list)
i = 0
for item in imgs_path_list:img = cv2.imread(os.path.join(imgs_path, item))img = cv2.resize(img, (img_w, img_h))img = img[:, :, :, np.newaxis]img_list.append(img)i += 1print(i, '/', len_)imgs = np.concatenate(img_list, axis=3)
imgs = imgs.astype(np.float32) / 255.for i in range(3):pixels = imgs[:, :, i, :].ravel()  # 拉成一行means.append(np.mean(pixels))stdevs.append(np.std(pixels))# BGR --> RGB , CV读取的需要转换,PIL读取的不用转换
means.reverse()
stdevs.reverse()print("normMean = {}".format(means))
print("normStd = {}".format(stdevs))

输入:

normMean = [0.4757419, 0.45063725, 0.39034033]
normStd = [0.26056913, 0.25479528, 0.25940257]

因为是RGB图片,有三个颜色通道,所以三个值;得到了均值和标准差我们就可以用transforms的Normalize函数来进行标准化了:

transform = transforms.Compose([transforms.Resize(32),  # 缩放图片,保持长宽比不变,最短边为32像素transforms.CenterCrop(32),  # 从图片中间开始切割出32*32大小的图片transforms.ToTensor(),  # 将图片转换成Tensor,归一化至[0,1]#标准化至[-1,1],规定均值和标准差transforms.Normalize(mean=[0.475, 0.451, 0.390], std=[0.261, 0.255, 0.259])
])

Pytorch:一、对图片数据进行标准化(猫狗)相关推荐

  1. PyTorch 读取图像图片数据

    读取图像 读取已封装好数据集 读取 MNIST 读取自定义数据集 读取已封装好数据集 读取 MNIST transform = transforms.Compose([transforms.ToTen ...

  2. 基于Pytorch、Keras、Tensorflow的图片数据生成器搭建

    1. 前言 作为一个对三种深度学习框架(Tensorflow,Keras,Pytorch)刚刚完成入门学习的菜鸟,在实战的过程中,遇到了一些菜鸟常见问题,即图片数据加载与预处理.在刚刚接触深度学习的时 ...

  3. Pytorch+CNN+猫狗分类实战

    文章目录 0.前言 1.猫狗分类数据集 1.1数据集下载(可选部分) 1.2数据集分析 2.猫狗分类数据集预处理 2.1训练集和测试集划分 2.2训练集和测试集读取 3.剩余代码 4.总结 0.前言 ...

  4. 【图像分类】实战——使用ResNet实现猫狗分类(pytorch)

    目录 摘要 导入项目使用的库 设置全局参数 图像预处理 读取数据 设置模型 设置训练和验证 验证 完整代码: 摘要 ResNet(Residual Neural Network)由微软研究院的Kaim ...

  5. TensorFlow 2.0 - tf.data.Dataset 数据预处理 猫狗分类

    文章目录 1 tf.data.Dataset.from_tensor_slices() 数据集建立 2. Dataset.map(f) 数据集预处理 3. Dataset.prefetch() 并行处 ...

  6. Keras深度学习使用VGG16预训练神经网络实现猫狗分类

    Keras深度学习使用VGG16预训练神经网络实现猫狗分类 最近刚刚接触深度学习不久,而Keras呢,是在众多的深度学习框架中,最适合上手的,而猫狗的图像分类呢,也算是计算机视觉中的一个经典案例,下面 ...

  7. PyTorch数据Pipeline标准化代码模板

    前言 PyTorch作为一款流行深度学习框架其热度大有超越TensorFlow的感觉.根据此前的统计,目前TensorFlow虽然仍然占据着工业界,但PyTorch在视觉和NLP领域的顶级会议上已呈一 ...

  8. CNN简单实战:PyTorch搭建CNN对猫狗图片进行分类

    在上一篇文章:CNN训练前的准备:PyTorch处理自己的图像数据(Dataset和Dataloader),大致介绍了怎么利用pytorch把猫狗图片处理成CNN需要的数据,今天就用该数据对自己定义的 ...

  9. DL之VGG16:基于VGG16迁移技术实现猫狗分类识别(图片数据量调整→保存h5模型)

    DL之VGG16:基于VGG16迁移技术实现猫狗分类识别(图片数据量调整→保存h5模型) 目录 基于VGG16迁移技术实现猫狗分类识别(图片数据量调整→保存h5模型) 设计思路 输出结果 1488/1 ...

  10. DL之AlexNet:利用卷积神经网络类AlexNet实现猫狗分类识别(图片数据增强→保存h5模型)

    DL之AlexNet:利用卷积神经网络类AlexNet实现猫狗分类识别(图片数据增强→保存h5模型) 目录 利用卷积神经网络类AlexNet实现猫狗分类识别(图片数据增强→保存h5模型) 设计思路 处 ...

最新文章

  1. 智慧AI组对于激光投影的检测方案
  2. Remove Duplicates from Sorted List
  3. git reset 怎么还原_git reset –hard后的恢复操作
  4. VS Tools for AI全攻略(2)低配置虚拟机也能玩转深度学习,无需NC/NV系列
  5. 使用LinkedHashMap的Code4ReferenceList最近使用(LRU)实现
  6. Matlab查看数组大小的命令——size、length、numel和ndims
  7. 面试题目_数据分析SQL面试题目9套汇总
  8. 迷你世界电锯机器人_迷你世界:石像机器人升级版,制作如此简单!
  9. “创业吃过饼,国企养过老” 架构师的头发不是一天掉完的!
  10. python游戏房间_Python House冒险-如果已经进入一个房间,如何给出不同的输出
  11. Hexo中next主题的个性化配置
  12. DB9 串口母对母转接头是个坑
  13. 地震 matlab,MATLAB在地震信号处理中的应用实例.docx
  14. JS网页恶搞代码,不断弹出、关不掉的对话框
  15. android 计算屏幕尺寸来区分phone和pad
  16. Prototype如何使用?
  17. 前端开发技术——对象
  18. 非标资产与标准资产_资产商店行动新闻– 2011年10月!
  19. 2012IT公司校园招聘笔试面试题
  20. 文言文编程?厉害了程序员!

热门文章

  1. 学习 opencv---(4) 分离颜色通道 多通道混合
  2. Microsoft Edge逃离360之路
  3. 生病吃什么水果你知道吗?
  4. 程序设计基础大作业:学生信息管理系统plus(彩色界面,登录功能,文件操作,多文件)
  5. Proteus仿真——常用元件
  6. 网站在线视频播放实现
  7. 百钱买百鸡 假设公鸡5文钱一只 母鸡三文钱一只 小鸡1文钱三只,要求用100文钱 , 如何买到100只鸡
  8. Fiddler中inspector的用法2-2
  9. 微信 客服消息 发送 微信会回调三次的问题
  10. 报表FineReport中单元格中各种颜色的标识说明