本人是深度学习小白一枚,记录如有问题欢迎指出~
前言:我在九天深度学习平台上白嫖了300小时GPU时长训练了目标检测模型,使用的是openmmlab的mmdetection框架(个人认为用起来方便但细节还需要细啃),想将训练的模型落地到项目中去,看到网上说需要部署(没接触过部署),mmdetection官网给的是使用mmdeploy以及docker进行部署,我尝试在九天平台上进行docker安装等,发现九天平台上apt-get无法使用,安装很麻烦。。。想着租一台新的服务器,又要花钱又要重新装torch、mmcv等环境,于是就在windows10上来试试torchserve部署(不需要docker)~~~
正传:
windows10上我装好了annoconda,创建了名为openmmlab的conda环境,在openmmlab中安装了pytorch、mmdet,接着使用pip安装torchserve以及torch-model-archiver
不需要安装mmdeploy,mmdetection源码中已经准备好了deployment
1、首先将模型与权重转成mar包(默认handler使用mmdet_handler),终端运行:
python tools/deployment/mmdet2torchserve.py configs/【模型】.py checkpoints/【模型】.pth --output-folder 【自定义mar存放文件夹】 --model-name 【自定义模型名】
例子:
python tools/deployment/mmdet2torchserve.py configs/logo/logo_retinanet_data_augment.py checkpoints/retinanet_data_augment.pth --output-folder ./checkpoints --model-name logo_detection
2.启动torchserve
需要java环境 conda install openjdk-11 即可安装java环境
torchserve --start --model-store 【mar所在文件夹】 --models 【模型名】=【模型名】.mar
例子:
torchserve --start --model-store ./checkpoints --models logo_detection=logo_detection.mar
3.用test_torchserver.py来测试一下
python tools/deployment/test_torchserver.py demo/logo1.jpg configs/logo/logo_retinanet_data_augment.py checkpoints/retinanet_data_augment.pth logo_detection
另外细看 test_torchserver.py知道将一张图片通过post请求访问'http://127.0.0.1:8080/predictions/【模型名】'即可得到检测结果,因此可以用来与前端交互
后续可以在linux服务器上试一下