mmdetection v1.x版本下的模型文件转换到v2.x,并用netron可视化模型

mmdetection更新速度实在是太快了

我有一些pth文件都是在mmdtection的v1.x版本下训练的,但是当我想看看整个模型网络时,我发现v1并不支持该操作,遂在GitHub的v2中找到了一个python2onnx.py文件。但是当我想直接通过这个代码转换成onnx文件时,我发现不行,遂只好更新v2版本。但是在我更新后傻眼了,v2的config下的fasterrcnn文件也太精简了。。。。这怎么修改成我的模型。。。。。

在config文件夹下有一个legacy_v1.x文件夹,里面的文件是为了mmdetection 的向下兼容性而存在的。在阅读了该文件夹下的readme文件后,发现要将v1的模型用v2做可视化操作需要以下几步:

1、将v1下的模型文件转换到v2的格式

在mmdetection目录下使用如下命令:

python tools/upgrade_model_version.py ${OLD_MODEL_PATH} ${NEW_MODEL_PATH} --num-classes ${NUM_CLASSES}

OLD_MODEL_PATH指你要转换的v1模型现在存在的绝对路径
NEW_MODEL_PATH指你要转换的v2模型转换后要保存的绝对路径
NUM_CLASSES指你要转换的模型中有多少个类+1,这个1是背景

2、在config文件夹下找到你要使用的文件

比如我的是config/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py,该文件内容如下:
mmdetection v1.x版本下的模型文件转换到v2.x,并用netron可视化模型_第1张图片
在v2的config文件中,原来的整个网络被分为三部分:模型部分、数据集部分、优化器。三部分分别存放在_base_文件夹下的的三个文件中,分别打开三个文件,对照你在v1中的config文件进行修改即可。

3、将转换后的pth文件转换为onnx

在mmdetection路径下运行该命令:

python tools/pytorch2onnx.py config文件 pth文件路径 要生成的onnx文件路径

如果没问题的话,onnx文件已经生成了

4、用netron做可视化

(1) 个人觉得netron非常好用,虽然很多人都建议用tensorboard啥的
(2) 使用如下命令,使用pip或conda安装netron,其中,pip我使用了清华镜像源,下载速度明显加快

pip:
sudo pip install netron -i https://pypi.tuna.tsinghua.edu.cn/simple 
conda:
sudo conda install netron 

(3) 在mmdetecion目录下新建文件view_model.py:

import netron
modelPath = "/home/user/mmdetection/work_dirs/zxf/ga.onnx" #这里记得改为你的onnx文件的绝对路径
netron.start(modelPath)

(4) 打开终端,在终端中输入python view_model.py,将会启动浏览器,即可在浏览器中看到整个模型。

(5) 如果想将netron结果保存为图片,可以在浏览器的模型结果页面左上角点击页面符号(不认识是啥,看着像页面),有一个export as png/svg,即可导出为png或者svg格式。我保存为png时,有一部分结构没有保存下来,所以我选择保存为svg格式。使用谷歌浏览器打开即可。

小白一枚,若有错误敬请指教。

你可能感兴趣的:(目标检测,pytorch,深度学习,计算机视觉)