前言
项目地址:https://github.com/Fafa-DL/Awesome-Backbones
视频教程:https://www.bilibili.com/video/BV1SY411P7Nd
初衷:
- 帮助大家从简单的LeNet网络到Transformer网络进行复现学习;
- 帮助提高阅读工程代码的能力;
- 帮助进行网络对比/炼丹/发paper
测试环境
- PyTorch 1.7.1
- TorchVision 0.8.2
- 注:所列环境不包括本项目所需的所有库,如果在终端运行提示缺少某个包,所有都可以通过pip或conda解决,很方便。后期也会测试最低支持什么版本,建议大家至少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
训练
- 所有模型在该仓库下可以直接通过调用相应配置文件实现
- 每个模型文件夹涵盖了不同版本配置文件
- 训练自己的数据集,包括数据集准备、标签制作、配置文件修改等,视频教程以及文字教程已在前述提供
- 设置三种情况保存权重:
最近一次周期、训练损失值最小的周期、验证准确率最高的周期
- 同步绘制每周期
训练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
类别激活图可视化
目前支持的方法有:
Method | What it does |
---|---|
GradCAM | 使用平均梯度对 2D 激活进行加权 |
GradCAM++ | 类似 GradCAM,但使用了二阶梯度 |
XGradCAM | 类似 GradCAM,但通过归一化的激活对梯度进行了加权 |
EigenCAM | 使用 2D 激活的第一主成分(无法区分类别,但效果似乎不错) |
EigenGradCAM | 类似 EigenCAM,但支持类别区分,使用了激活 * 梯度的第一主成分,看起来和 GradCAM 差不多,但是更干净 |
LayerCAM | 使用正梯度对激活进行空间加权,对于浅层有更好的效果 |
- 具体使用方法详见教程
文章出处登录后可见!
已经登录?立即刷新