1.利用python embed打包--facechain windows安装包制作过程
2.使用mmdeploy部署rtmdet ins做实例分割
利用python embed打包--facechain windows安装包制作过程
在学习过程中受到启发,源码了解到Python可以通过embed方式部署和安装,安装决定在facechain上实践这一过程。源码以下是安装详细的操作记录。
从python.org官网下载对应版本的源码Python-embed,并在本地解压缩。安装卖书源码
安装pip,源码首先下载,安装然后运行安装。源码
安装完成后,安装可能会出现一个warning,源码是安装否加入D:\python-3..-embed-amd\Scripts到path环境变量,实际操作中可选。源码
修改路径下python._pth文件,安装具体命名与版本相关。源码需删除#import site注释,并增加embed路径。
运行pip安装所需的包,将requirements.txt文件拷贝过来,myword源码指定安装路径以避免影响系统已安装的版本。
尝试安装mmcv-full,遇到问题时发现关联到pycharm下的mmcv,选择手动指定路径安装。
安装完成后,遇到依赖冲突,优先处理这些问题。
程序拷贝,可以使用pycharm程序或通过git操作,generator 源码甚至git clone。
在Embed环境下运行程序,遇到Module找不到的问题,通过在python._pth中增加一行解决。
依赖包中遇到包找不到的问题,特别是在modelscope中的venv,通过安装virtualvenv并修改源代码中的导入语句解决。
调试过程中,上传及开始训练后报错,ping 源码确认是使用accelerate时报错。直接在cmd窗口中运行程序,无误后修改源代码,去除accelerate部分。
发现dataprocess包无法识别,再次在python._pth中加入解决。
训练及推理过程正常,所有文件打包,文件体积庞大。网名源码
上传至云盘,供爱好者测试。
使用mmdeploy部署rtmdet ins做实例分割
在尝试使用mmdeploy部署rtmdet ins进行实例分割时,发现网上资源较少,github的问题也有不少未解决,只得自己动手,留作档案。
构建时需严格遵循源代码构建流程,从下载到构建,避免第三方库问题。
ppl.cv不支持cuda,构建时需在cuda.cmake中设置与自己显卡对应的flag。
使用了最新版的tensorrt和cudnn,版本对运行结果影响不大,但确保环境变量已正确设置。
安装mmcv时需注意版本,应使用大于2.0.0、小于2.2.0的版本,直接按照教程安装易导致版本2.3.0,mmdet会报错,我选择安装2.1.0版本。
在使用中需注意cuda版本,选择.x版本最为合适。
因为mmdeploy需要nvcc进行编译,所以本地的cuda toolkit也应安装。我忽视了这一点,nvcc编译可以正常通过,但在运行时在trt nms处出现错误。
在修改permuteData.cu文件后,发现问题是由于sm_不兼容(我的显卡是,查看主机cuda版本是否支持)。吐槽的是,即使卸载过cuda导致nvcc版本为.1,编译也能通过!
如果你的cuda版本高于.x,请修改zsh/bash指定版本,先执行,再添加到环境变量。
在模型转换时,需要将mmdetection的_base_文件夹导入到mmdeploy的_base_中,将mmdetection的/config/rtmdet导入到mmdeploy的/config中,否则会找不到type。