当前位置: 首页 > ds >正文

CIFAR-10图像分类学习笔记(一)

pytorch

解决视觉分类

图像分类网络模型

微观方面

分类网络基本结构:

01数据加载模块(对训练的数据进行加载【读取训练数据的过程】)

02数据预处理(数据增强)->将处理好的数据丢到CNN卷积神经网络中(提取卷积特征)->将提取出来的卷积特征转化为N维向量(N维向量就是要表示的图像分类的N个类别)->LOSS函数计算当前的损失,利用当前损失进行反向传播,对网络参数进行调整->利用N维向量的概率分布计算出当前的训练集的准确率

03定义网络的优化器:梯度下降算法(对网络参数进行迭代)->多维迭代模型会收敛到LOSS非常小或者不再变化->拿到一组最优的神经网络参数解->根据构建的神经网络对实际的输入数据进行推理

训练过程vs推理过程

训练的过程:对神经网络中的参数进行求解

推理的过程:已知网络结构,并通过训练过程计算得到网络参数->输入x利用神经网络结构及已知参数计算出网络的结果

01数据加载模块

使用pytorch中的torchvision.datasets中的数据集(封装好的公开的数据集)

torch.utils.data下的Dataset,detaLoader这俩类完成自定义数据集的训练

首先要知道数据的排列方式是RGB(三个维度上的数据)还是BGR

若是JPEG编码的数据需要用解码的方式获取RGB这三个通道

02数据增强

原因背景;

神经网络中网络的参数十分庞大,但是样本数量有限,可能因为样本数量不够导致过拟合的现象出现),模型的泛化能力不强(训练结果在训练集上效果非常好,但是在测试集效果不好)

措施:

对已有的数据进行数据扩充,例如:随机翻转、旋转、修改图像的亮度、对比度、饱和度,不同颜色属性完成对数据的扩充

什么是过拟合?简单说就是为了得到一致的结果而使得假设过于的严格,使得有限的样本数据全部落在人为干预拟定曲线上,但实际上非样本数据(即在训练集外的数据)有可能根本不在这个曲线上

实现:

pytorch下的torchvision的transforms类进行数据增强的实现

03网络结构

搭建卷积神经网络

利用四个结构分别搭建四种网络模型来实现

04类别概率分布

将N为向量转换为对应的N个类别的方法

1)FC

2)conv卷积

3)pool

3分类

[1,0,0]  [0,1,0]  [0,0,1]这种从标签转换成向量的方式叫one-hot编码(独热码)

有的图片既可能属于类别1也可能属于类别2,但这种三分类很hard要不是1要不就是0,因此采用label smoothing定义:[0.9,0.05,0.05]

05分类任务中的评价指标

正确率、错误率、灵敏度、特效度、精度、召回率、PR曲线(x-recall召回率,y-precision)、ROC曲线、AUC曲线(对应ROC曲线的面积)

PR曲线:

要做到的就是从上到下的弯曲点尽可能的在俩坐标轴方向值都大如下图箭头所示,保证在高召回率的情况下精度依然高

ROC曲线:

ROC曲线凸的地方越靠近1,模型的效果就越好,即下面图阴影部分面积越大越好,右上角线越靠近100%则模型效果越好

06优化器选择torch.optim.Adam

学习率初始值:lr=0.001

学习率衰减的方法采用指数衰减:torch.optim.lr_scheduler.ExponentialLR

http://www.xdnf.cn/news/1484.html

相关文章:

  • vim的.vimrc配置
  • 【Java面试笔记:基础】11.Java提供了哪些IO方式? NIO如何实现多路复用?
  • 哪些心电图表现无缘事业编体检呢?
  • Linux程序地址空间
  • 【maven-7.1】POM文件中的属性管理:提升构建灵活性与可维护性
  • 《Cesium 中两点绘制线的实现:实线、虚线、动态线、流动线详解》
  • 元素滚动和内容垂直居中同时存在,完美的 html 元素垂直居中的方法flex + margin: auto
  • Java 中 String 转 Integer 的方法与底层原理详解
  • Elasticsearch(ES)中的脚本(Script)
  • 设备沟通不再“鸡同鸭讲”EtherCAT转Profinet网关助力工业互联新升级!
  • SpringMVC从入门到上手-全面讲解SpringMVC的使用.
  • BUUCTF jarvisoj_test_your_memory
  • 电控---DMP库
  • C语言(1)—C语言常见概念
  • xcode 16 遇到contains bitcode
  • visio导出的图片过大导致latex格式转成pdf之后很不清楚
  • 缩放点积注意力
  • 新书速览|Hadoop与Spark大数据全景解析(视频教学版)
  • STM32F4 W25Q64存储芯片详解:特性以及应用
  • Java 集合:泛型、Set 集合及其实现类详解
  • 房屋租赁管理系统
  • 具身智能操作知识梳理与拓展
  • 第六章 QT基础:4、QT的TCP网络编程
  • FEKO电磁仿真软件许可类型
  • 【特殊场景应对6】频繁跳槽:行业特性与稳定性危机的解释边界
  • Rust 语言使用场景分析
  • 多源数据集成技术分析与应用实践探索
  • 【Element Plus】解决移动设备使用 el-menu 和 el-sub-menu 时,子菜单需要点击两次才会隐藏的问题
  • 记录一下线性回归的学习
  • 极狐GitLab 如何撤销变更?