开箱即用,涵盖主流模型的图像分类|主干网络学习/对比/魔改项目

在这里插入图片描述

文章目录

  • 前言
  • 测试环境
  • 支持模型(点击跳转到训练自己数据集教程页)
  • 训练
  • 评估
  • 类别激活图可视化

前言

项目地址:https://github.com/Fafa-DL/Awesome-Backbones

视频教程:https://www.bilibili.com/video/BV1SY411P7Nd

初衷

  • 帮助大家从简单的LeNet网络到Transformer网络进行复现学习;
  • 帮助提高阅读工程代码的能力;
  • 帮助进行网络对比/炼丹/发paper

测试环境

  • PyTorch 1.7.1
  • TorchVision 0.8.2
  • 注:所列环境不包括本项目所需的所有库,如果在终端运行提示缺少某个包,所有都可以通过pipconda解决,很方便。后期也会测试最低支持什么版本,建议大家至少PyTorch与TorchVision和我保持一致

支持模型(点击跳转到训练自己数据集教程页)

  • LeNet5
  • AlexNet
  • VGG
  • DenseNet
  • ResNet
  • ResNeXt
  • SEResNet
  • SEResNeXt
  • RegNet
  • MobileNetV2
  • MobileNetV3
  • ShuffleNetV1
  • ShuffleNetV2
  • EfficientNet
  • RepVGG
  • Res2Net
  • ConvNeXt
  • HRNet
  • ConvMixer
  • CSPNet
  • Swin-Transformer
  • Vision-Transformer
  • Transformer-in-Transformer
  • MLP-Mixer
  • DeiT
  • Conformer
  • T2T-ViT
  • Twins
  • PoolFormer
  • VAN

训练

  • 所有模型在该仓库下可以直接通过调用相应配置文件实现
    开箱即用,涵盖主流模型的图像分类|主干网络学习/对比/魔改项目_第1张图片
  • 每个模型文件夹涵盖了不同版本配置文件
    开箱即用,涵盖主流模型的图像分类|主干网络学习/对比/魔改项目_第2张图片
  • 训练自己的数据集,包括数据集准备、标签制作、配置文件修改等,视频教程以及文字教程已在前述提供
    开箱即用,涵盖主流模型的图像分类|主干网络学习/对比/魔改项目_第3张图片
  • 设置三种情况保存权重:最近一次周期、训练损失值最小的周期、验证准确率最高的周期
    开箱即用,涵盖主流模型的图像分类|主干网络学习/对比/魔改项目_第4张图片
  • 同步绘制每周期训练Loss以及验证准确率曲线图
    开箱即用,涵盖主流模型的图像分类|主干网络学习/对比/魔改项目_第5张图片
  • 同步保存每周期训练损失值、验证准确率、Mean Precision、Mean Recall、Mean F1 Score
    开箱即用,涵盖主流模型的图像分类|主干网络学习/对比/魔改项目_第6张图片

评估

  • 训练完毕得到权重文件后可以对模型进行详细评估,视频教程以及文字教程已在前述提供。
  • 终端输出每类别Precision、Recall、F1 Score;输出总平均Top-1 Acc、Top-5 Acc、Mean Precision、Mean Recall、Mean F1 Score;输出混淆矩阵。结果将以metrics_output.csv保存
    开箱即用,涵盖主流模型的图像分类|主干网络学习/对比/魔改项目_第7张图片
    开箱即用,涵盖主流模型的图像分类|主干网络学习/对比/魔改项目_第8张图片
  • 测试集中每张图像详细预测信息(图片路径、预测类别、真实类别、是否预测成功、各类别置信度得分)保存在prediction_results.csv
    开箱即用,涵盖主流模型的图像分类|主干网络学习/对比/魔改项目_第9张图片

类别激活图可视化

目前支持的方法有:

Method What it does
GradCAM 使用平均梯度对 2D 激活进行加权
GradCAM++ 类似 GradCAM,但使用了二阶梯度
XGradCAM 类似 GradCAM,但通过归一化的激活对梯度进行了加权
EigenCAM 使用 2D 激活的第一主成分(无法区分类别,但效果似乎不错)
EigenGradCAM 类似 EigenCAM,但支持类别区分,使用了激活 * 梯度的第一主成分,看起来和 GradCAM 差不多,但是更干净
LayerCAM 使用正梯度对激活进行空间加权,对于浅层有更好的效果

开箱即用,涵盖主流模型的图像分类|主干网络学习/对比/魔改项目_第10张图片

  • 具体使用方法详见教程
    开箱即用,涵盖主流模型的图像分类|主干网络学习/对比/魔改项目_第11张图片

你可能感兴趣的:(图像分类,深度学习,分类,卷积神经网络,图像处理,pytorch)