Pytorch——图像分类网络模型框架解读

425 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第26天,点击查看活动详情


上一篇文章中,我们介绍了经典卷积神经网络结构,优化器,学习率和卷积神经网络添加正则化的方法。

今天,我们来进行图像分类网络模型框架解读,了解分类网络的基本结构,数据加载,数据增强,网络结构,类别概率分布,LOSS,分类问题常用评价指标,优化器选择。


  • 1.1 分类网络的基本结构

8.png

训练的过程就是求解参数的过程

推理的过程就是已知网络结构,通过训练的过程已经拿到的参数构建出要进行前向推理的函数,利用这个函数,给定输入x,计算出想要的结果

  • 1.2 数据加载

  • RGB数据 OR BGR数据

  • JPEG编码后的数据

  • torchvisioin.datasets中的数据集

  • torch.utils.data下的Dataset,DataLoader自定义数据集

  • 1.3 数据增强

就是对已有的数据进行数据扩充的手段

  • 为什么需要数据增强?

    • 在神经网络中,参数的数量是非常庞大的,但是通常样本的数量是非常有限的,
    • 对于这样有限的集合,在训练模型的时候,就可能存在样本量不够而导致过拟合的问题,
    • 甚至存在训练集中不存在的现象,不存在的噪声
    • 这些不存在的噪声可能会导致模型在训练集上的效果非常好,但是测试集的效果没有训练集那么好,也就是模型的泛化能力没那么强
  • 1.4 网络结构

9.png

  • 1.5 类别概率分布

    • N维度向量对应N个类别
    • 如何将卷积输出的tensor转换成N维度向量
      • 采用FC层,将CxVxW拉成一个向量,利用这个输出作为FC层的输入,在将特征映射到N维的向量中
      • 直接将特征图H和W进行下采样到1x1,N就对应channel的大小,经过一个HxW的卷积核处理之后将特征图转化为NxCx1x1的一维的tensor
      • 采用pooling层,pooling层无参数
    • softmax
  • 1.6 LOSS

    • nn.CrossEntropyLoss
    • label smoothing
    • 11.png
  • 1.7 分类问题常用评价指标

混淆矩阵: 12.png

  • 正确率(accuracy):(TP+TN)/(P+N)

  • 错误率(error rate):(FP+FN)/(P+N)

  • 灵敏度(sensitive):sensitive = TP/P

  • 特效度(specificity):TN/N

  • 精度(precision):TP/(TP+FP)

  • 召回率(recall):TP/(TP+FN)=TP/P=sensitive

  • PR曲线、ROC曲线、AUC面积

  • 1.8 PR曲线、ROC曲线

13.png 定义不同的阈值

  • 1.9 优化器选择

  • 推荐使用:torch.optim.Adam

  • 学习率初始值:lr=0.001

  • 学习率指数衰减:torch.optim.lr_scheduler.ExponentialLR

9JQ4ZCQY3M({Q$KEN%9BFQX.png