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


前言

项目地址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和我保持一致

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

训练

  • 所有模型在该仓库下可以直接通过调用相应配置文件实现
  • 每个模型文件夹涵盖了不同版本配置文件
  • 训练自己的数据集,包括数据集准备、标签制作、配置文件修改等,视频教程以及文字教程已在前述提供
  • 设置三种情况保存权重:最近一次周期、训练损失值最小的周期、验证准确率最高的周期
  • 同步绘制每周期训练Loss以及验证准确率曲线图
  • 同步保存每周期训练损失值、验证准确率、Mean Precision、Mean Recall、Mean F1 Score

评估

  • 训练完毕得到权重文件后可以对模型进行详细评估,视频教程以及文字教程已在前述提供。
  • 终端输出每类别Precision、Recall、F1 Score;输出总平均Top-1 Acc、Top-5 Acc、Mean Precision、Mean Recall、Mean F1 Score;输出混淆矩阵。结果将以metrics_output.csv保存

  • 测试集中每张图像详细预测信息(图片路径、预测类别、真实类别、是否预测成功、各类别置信度得分)保存在prediction_results.csv

类别激活图可视化

目前支持的方法有:

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

  • 具体使用方法详见教程

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2022年5月16日
下一篇 2022年5月16日

相关推荐