前言

数据是深度学习的核心,大部分论文里都会提到data-driven这个词,也就是数据驱动的意思。基本的模型搭建完成后,如何处理数据,如何将数据送给网络,如何做数据增强等等,对于提高网络的性能都十分重要,本篇文章会简单讲述下数据处理过程,后续有时间会持续更新这方面的内容,互相学习,共勉!

数据集的均值和标准差

def compute_mean_and_std(dataset):    # 输入为PyTorch的dataset,即数据集,输出为对应数据集均值和标准差        # 均值    mean_r = 0    mean_g = 0    mean_b = 0    for img, _ in dataset:        img = np.asarray(img) # 将 PIL Image 改变成numpy的数组类型        mean_b += np.mean(img[:, :, 0])        mean_g += np.mean(img[:, :, 1])        mean_r += np.mean(img[:, :, 2])    mean_b /= len(dataset)    mean_g /= len(dataset)    mean_r /= len(dataset)    diff_r = 0    diff_g = 0    diff_b = 0    N = 0    for img, _ in dataset:        img = np.asarray(img)        diff_b += np.sum(np.power(img[:, :, 0] - mean_b, 2))        diff_g += np.sum(np.power(img[:, :, 1] - mean_g, 2))        diff_r += np.sum(np.power(img[:, :, 2] - mean_r, 2))        N += np.prod(img[:, :, 0].shape)    std_b = np.sqrt(diff_b / N)    std_g = np.sqrt(diff_g / N)    std_r = np.sqrt(diff_r / N)    mean = (mean_b.item() / 255.0, mean_g.item() / 255.0, mean_r.item() / 255.0)    std = (std_b.item() / 255.0, std_g.item() / 255.0, std_r.item() / 255.0)   return mean, std

常用训练和验证数据预处理

ToTensor 会将 PIL.Image形状为 H×W×D,数值范围为 [0, 255] 的numpy数组转换形状为 D×H×W,数值范围为 [0.0, 1.0] 的 torch.Tensor

train_transform = torchvision.transforms.Compose([    torchvision.transforms.RandomResizedCrop(size=224, scale=(0.08, 1.0)),    torchvision.transforms.RandomHorizontalFlip(),    torchvision.transforms.ToTensor(),    torchvision.transforms.Normalize(mean=(0.485, 0.456, 0.406)std=(0.229, 0.224, 0.225)), ]) val_transform = torchvision.transforms.Compose([    torchvision.transforms.Resize(256),    torchvision.transforms.CenterCrop(224),    torchvision.transforms.ToTensor(),    torchvision.transforms.Normalize(mean=(0.485, 0.456, 0.406),                                     std=(0.229, 0.224, 0.225)),])

视频数据

import cv2video = cv2.VideoCapture(mp4_path)height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH))num_frames = int(video.get(cv2.CAP_PROP_FRAME_COUNT))fps = int(video.get(cv2.CAP_PROP_FPS))video.release()

未完待续,持续更新!

数据增强 transform_深度学习-Pytorch框架学习之数据处理篇相关推荐

  1. PyTorch框架学习八——PyTorch数据读取机制(简述)

    PyTorch框架学习八--PyTorch数据读取机制(简述) 一.数据 二.DataLoader与Dataset 1.torch.utils.data.DataLoader 2.torch.util ...

  2. 深度学习Pytorch框架

    深度学习Pytorch框架 文章目录 深度学习Pytorch框架 前言 1. Pytorch命令之``nn.Sequential`` 2. Pytorch命令之``nn.Conv2d`` 3. Pyt ...

  3. 基于岭回归的数据增强与深度学习模型

    作者:禅与计算机程序设计艺术 <基于岭回归的数据增强与深度学习模型>技术博客文章 <基于岭回归的数据增强与深度学习模型> 引言 随着深度学习技术的快速发展,模型压缩.数据增强成 ...

  4. PyTorch框架学习十九——模型加载与保存

    PyTorch框架学习十九--模型加载与保存 一.序列化与反序列化 二.PyTorch中的序列化与反序列化 1.torch.save 2.torch.load 三.模型的保存 1.方法一:保存整个Mo ...

  5. PyTorch框架学习十七——Batch Normalization

    PyTorch框架学习十七--Batch Normalization 一.BN的概念 二.Internal Covariate Shift(ICS) 三.BN的一个应用案例 四.PyTorch中BN的 ...

  6. PyTorch框架学习十二——损失函数

    PyTorch框架学习十二--损失函数 一.损失函数的作用 二.18种常见损失函数简述 1.L1Loss(MAE) 2.MSELoss 3.SmoothL1Loss 4.交叉熵CrossEntropy ...

  7. PyTorch框架学习十——基础网络层(卷积、转置卷积、池化、反池化、线性、激活函数)

    PyTorch框架学习十--基础网络层(卷积.转置卷积.池化.反池化.线性.激活函数) 一.卷积层 二.转置卷积层 三.池化层 1.最大池化nn.MaxPool2d 2.平均池化nn.AvgPool2 ...

  8. PyTorch框架学习五——图像预处理transforms(一)

    PyTorch框架学习五--图像预处理transforms(一) 一.transforms运行机制 二.transforms的具体方法 1.裁剪 (1)随机裁剪:transforms.RandomCr ...

  9. PyTorch框架学习一——PyTorch的安装(CPU版本)

    PyTorch框架学习一--PyTorch的安装(CPU版本) PyTorch简介 PyTorch的安装(CPU版) 机器学习/深度学习领域的学习都是需要理论和实践相结合的,而它们的实践都需要借助于一 ...

最新文章

  1. 笔记本电脑连接服务器的显示器不亮,电脑显示器不亮怎么回事 电脑显示器不亮解决办法【图文】...
  2. HDU1151 Air Raid
  3. ultraedit中换行键的替换
  4. wamp配置多少站点
  5. 非对称加密算法 - Java加密与安全
  6. jzoj5363-[NOIP2017提高A组模拟9.14]生命之树【启发式合并,Trie】
  7. 视频光端机选型及常见品牌
  8. 验证python安装_Python环境搭建(安装、验证与卸载)
  9. python包的初始与日志模块
  10. SilverLight中的数据绑定
  11. android+世界地图高清版大图片,世界地图全图高清版
  12. 经典算法系列之不死神兔
  13. 最后一天了(再见了)
  14. 五、伊森商城 前端基础-Vue v-on 事件修饰符 按键修饰符 v-for v-if 和v-show v-else和v-else-if p24
  15. 简单园区网络基本架构
  16. UIView 的部分圆角的设定
  17. Launcher的简单介绍
  18. 库存管理系统软件测试,软件测试库存管理系统1软件测试库存管理系统1.doc
  19. 构建vue-cli npm安装webpack报错原因 error -4075解决办法
  20. 在Kotlin代码中要慎用Java 8 的 Stream API

热门文章

  1. 2018.8.2 Juint测试介绍及其命名的规范
  2. Effective C++ 条款12
  3. 什么是社会性网络?什么是六度分隔理论?
  4. 数据结构——堆栈的C语言实现
  5. 【剑指offer】面试题39:数组中出现次数超过一半的数字
  6. Leetcode--128. 最长连续序列
  7. JSP中get和post请求方式的区别及乱码解决方法
  8. python自动拨号_Python自动连接ssh的方法
  9. linux 测试cpu计算圆周率_Linux下测试CPU性能
  10. Visual Studio 2013运行的结果一闪而过