- pytorch搭建模型、预测
- flask提供接口服务
- docker容器部署
- ubuntu20操作系统上部署
pytorch搭建模型、预测
项目git:wangyuqiang / pubg_pos_classify
flask提供接口服务
见项目代码:run_flask.py
docker容器部署
# build docker镜像
# --tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
sudo docker build -t 'testflask' .
# 查看镜像
sudo docker images
# 目标机安装docker
sudo apt-get install docker.io
# docker run
# 临时测试用
sudo docker run -it --rm -p 80:80 testflask
# 长久部署用 -d 以daemon方式运行
sudo docker run -d -p 80:80 --name test-flask-1 testflask
ubuntu20操作系统上部署
1. clone项目
git clone https://gitee.com/wangyuqiang0201/pubg_pos_classify.git
2. 测试项目可否运行
2.1 创建虚拟环境
2.2 激活环境
source ./pubg_pos_classify_env/bin/activate
2.3 在虚拟环境中安装包
# 注意:需切换为root根用户,不然会因为权限而安装失败
sudo -s
# 不能加sudo,否则会安装在根环境
pip install flask torch torchvision pillow
2.4 开启端口
sudo apt update
sudo apt install ufw # 安装 UFW
sudo ufw status verbose # 查看状态
ufw enable # 开启 UFW
ufw allow 5000 # 开启5000端口
ufw reload # 重启 UFW
2.5 运行flask
# 如果是简单的app.run
app.run(debug=True,host='0.0.0.0',port=5000)
# 如果是create_app创建的app,则
python manage.py runserver -h 127.0.0.1 -p 8090
# 使用gunicorn gevent()的情况下
# 需要将if __name__ == "__main__":下面的全局变量写到外面执行
# 比如load_model函数初始化模型参数,不然会找不到模型,为NoneType
gunicorn run_flask:app -c gunicorn.conf.py # 启动的.py文件名和app变量名,并指定配置文件
2.6 请求代码
# 客户端运行post_image.py
python post_image.py
2.7 导出requirements.txt
pip freeze > requirements.txt