基于uwsgi的pytroch模型的部署

一般对深度学习模型进行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()模式。

实测有效。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
uWSGI和Nginx是一种常见的Flask应用程序部署组合。uWSGI是一种Web服务器,它可以在后台运行Python应用程序,并提供了许多高级功能,如负载均衡、缓存、网关接口等。Nginx是一种反向代理服务器,它可以将传入的请求转发给uWSGI服务器,并负责处理静态文件、SSL加密等。 下面是一些简单的步骤,可以帮助你使用uWSGI和Nginx部署Flask应用程序: 1. 安装uWSGI和Nginx 在Linux系统上,你可以使用包管理器来安装uWSGI和Nginx。例如,在Ubuntu上,你可以运行以下命令: ``` sudo apt-get update sudo apt-get install nginx uwsgi uwsgi-plugin-python3 ``` 2. 创建Flask应用程序 在你的项目目录中创建一个名为`app.py`的文件,并编写Flask应用程序代码。例如: ```python from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello, World!' ``` 3. 创建uWSGI配置文件 在你的项目目录中创建一个名为`uwsgi.ini`的文件,并编写uWSGI配置。例如: ```ini [uwsgi] module = app callable = app master = true processes = 4 socket = /tmp/uwsgi.sock chmod-socket = 666 vacuum = true die-on-term = true ``` 其中,`module`参数指定了Flask应用程序的Python模块名,`callable`参数指定了Flask应用程序的实例名。`socket`参数指定了uWSGI服务器监听的Unix套接字路径,`processes`参数指定了uWSGI服务器的工作进程数。 4. 测试uWSGI服务器 在命令行中,进入你的项目目录,并运行以下命令启动uWSGI服务器: ``` uwsgi --ini uwsgi.ini ``` 如果一切正常,你应该能够通过访问Unix套接字路径来测试uWSGI服务器: ``` curl http://localhost/tmp/uwsgi.sock ``` 你应该看到Flask应用程序的输出。 5. 创建Nginx配置文件 在Nginx配置文件中添加以下内容: ``` server { listen 80; server_name yourdomain.com; location / { include uwsgi_params; uwsgi_pass unix:///tmp/uwsgi.sock; } } ``` 其中,`listen`参数指定了Nginx服务器监听的端口和IP地址,`server_name`参数指定了该虚拟主机的域名或IP地址。`location`块指定了请求转发规则,`uwsgi_pass`参数指定了uWSGI服务器监听的Unix套接字路径。 6. 启动Nginx服务器 在命令行中,运行以下命令启动Nginx服务器: ``` sudo service nginx start ``` 如果一切正常,你应该能够通过访问你的域名或IP地址来访问Flask应用程序。 注意:如果你使用的是Ubuntu 18.04或更高版本,你需要将Nginx配置文件中的`include uwsgi_params;`改为`include /etc/nginx/uwsgi_params;`。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值