目录
(5)__init__.py文件导入自己的MyFilelist模块
1. mmclassification安装教程
(1)首先安装Anaconda
创建一个 conda python3.8 的虚拟环境并激活它 ,在windows命令行下执行
conda create --name openmmlab python=3.8 -y
创建结束后激活环境
conda activate openmmlab
激活成功后可以看到命令行有:“openmmlab”代表激活成功
(2)安装pytorch和torchvision
与python3.8 对应的 pytorch 、torchvision版本分别是
pytorch==1.8.0 torchvision==0.9.0
可到连接中https://download.pytorch.org/whl/torch_stable.htm 寻找对应的版本
下载后 在命令行中 使用下面命令安装
pip instll torch-1.8.0+cpu-cp38-cp38-win_amd64.whl
pip install torchvision-0.9.0+cpu-cp38-cp38-win_amd64.whl
(3)安装openmim
pip install -U openmim
(4)安装mmcv
mim install mmcv-full
(5)安转常用的软件包
pip install scikit-image -i https://pypi.mirrors.ustc.edu.cn/simple/
pip install pillow -i https://pypi.mirrors.ustc.edu.cn/simple/
pip install opencv-python -i https://pypi.mirrors.ustc.edu.cn/simple/
pip install tqdm -i https://pypi.mirrors.ustc.edu.cn/simple/
pip install matplotlib -i https://pypi.mirrors.ustc.edu.cn/simple/
pip install wandb -i https://pypi.mirrors.ustc.edu.cn/simple/
pip install tensorboard -i https://pypi.mirrors.ustc.edu.cn/simple/
(6)下载mmclassification源码
https://github.com/open-mmlab/mmclassification 到该链接中下载源码
(7)安装mmclassification
进入代码的 cd mmclassification-master
(openmmlab) C:\Users\qinyiquan\Downloads\mmclassification-master>
在此路径下执行
pip install -v -e .
(8)测试是否安装成功
分别执行下面命令
mim download mmcls --config resnet50_8xb32_in1k --dest .
python demo/image_demo.py demo/demo.JPEG resnet50_8xb32_in1k.py resnet50_8xb32_in1k_20210831-ea4938fc.pth --device cpu
看到此运行结果证明安装成功
2. 在pycharm中编译代码
(1)使用在pycharm打开项目工程文件夹
以使用resnet模型训练为例子
需要到的文件链接:https://pan.baidu.com/s/1RVAlr-uTczP2ZEHgFfdmVw
提取码:micx
(2) 添加自己的模型
在此路径mmclassification-master\configs\resnet\下定义自己的模型
today_resnet18_8xb32_in1k.py
(3)添加自己的数据集
在路径mmclassification-master\mmcls\data\flower_data下添加
自己的数据集flower_data
(4)定义自己的数据处理类 MyFilelist
today_resnet18_8xb32_in1k.py中定义自己的数据处理类 MyFilelist,
在mmclassification-master\mmcls\datasets\my_filelist.py 下定义
(5)__init__.py文件导入自己的MyFilelist模块
在上一步路径下的__init__.py文件导入自己的MyFilelist模块
from .my_filelist import MyFilelist 并在列表中添加自己的模块
__all__ = [
.......................,'MyFilelist'
]
(6)设置训练使用CPU
在mmclassification-master\tools\train.py此文件中
把device=cfg.device, 改为
device='cpu',
此处意为使用CPU训练
(7)编译配置
(8)编译结果
有此运行结果,证明编译成功
3. 训练结果验证
(1)验证环境配置
记得在/demo/demo_image.py中设置使用CPU
args.device = 'cpu' #设置cpu运行,默认是使用cuda:0
(2)验证结果
用于验证的图片是类别1,在我们代码中分类值是从0开始
结果显示如下:标签值为0,即对应原来的类别1,结果正确
4. 测试评估模型效果
(1)测试环境配置
测试文件是tools/test.py, 根据该文件配置如下图 ,其中 --show 表示一张张图片显示出来, --show-dir 表示把测试待显示的图片结果保存到文件夹中
如果有GPU的话就是这样的验证,但是我的电脑使用的是cpu,代码运行不了。
5. 可视化模块介绍visualizations
可用于观看数据处理后的结果对比,比如在flower_data分类时,可以观看图片原始数据和预处理后的数据对比,这个过程与能否训练无关。
(1)编译环境配置
(2)数据处理可视化 vis_pipeline.py
配置环境就是给编译脚本vis_pipeline.py传递参数用于编译
环境配置好后编译,可以看到输出结果已经在我们配置好的目录中了
(3)grad-cam可视化
可以观看验证结果中的侧重点,注意力。tools/visualizations/vis_cam.py 编译脚本,首先需要安装依赖包:pip install grad-cam
以猫狗分类为例,下载使用classification 本来就训练好的模型 resnet18_8xb32_in1k_20210831-fbbb1da6.pth
可以看到此时注意力在狗身上,默认使用的是 模型最后一层的输出结果,也可以观看其它层的输出结果。
给vis_cam.py脚本传递 --preview-model 参数,就会打印出模型的各个层,然后在Parameters
中传入要查看的输出层结果。
例如我们查看layer4层conv2层的输出结果
grad-cam输出结果
6. analysis_toolsgon模型分析工具介绍
(1)analyze_logs.py
以训练后输出的log json为基础,可以画出json文件中一些数据的变化趋势图。
损失和准确的变化去食堂,这里只训练了10次,可以看到损失呈现下降趋势,准确率呈现上升趋势。
(2)get_flops.py 计算力
flops是floating point operations per second的缩写,意指每秒浮点运算次数,理解为计算速度。是一个衡量硬件性能的指标。可以训练前计算任务需要的计算量。
不指定图片大小,默认是224*224