一般对深度学习模型进行web部署时,总是脱离不了基于django或者flask,其实对于uwsgi了解到一定程度,对于一些简单的任务,可以脱离这两个框架,直接通过一些最原始的uwsgi指令就可以调用pytroch的模型。
其中,最关键的一步,是uwsgi下如何加载pytroch module。
网上会有各种参考,说明如何在uwsgi下的ini配置文件里启动virtualenv,然而这往往是一个深坑,最重要的,要识别出来pytorch是通过pip还是conda安装。如果是pip安装,那么对于uwsgi,则是可以参考网上的很多文章来实现对于虚拟环境的加载,如:
https://blog.csdn.net/deep_sea_boy/article/details/86529945
然而,如果是conda下安装的pytroch及虚拟环境,则一定要从conda开始加载uwsgi:
conda 环境不必多说: conda(或source) activate test 进入test虚拟环境
接下来安装uwsgi:
pip install uwsgi 在conda环境下大概率安装不成功,可以使用一下命令代替:
conda install -c conda-forge uwsgi
运行uwsgi 有可能碰到 libiconv.so 动态库找不到的问题,同样可以用conda安装
conda install -c conda-forge libiconv
更多请参考:https://www.cnblogs.com/jiaxiaoxin/p/10642263.html
----------更新-------------------
补充:如果通过uwsgi来进行pytroch模型的部署,那么在model的save和load的时候,最好用推荐的state_dict()模式。
实测有效。