使用uwsgi部署Flask应用

前言:本人大四,研0,在24年暑假在杭州某互联网公司实习,本文用来记录自己在公司学到的东西。

uwsgi:uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。uWSGI就像是一座桥梁,一边连着web服务器,另一边连着用户的应用。

Flask:Flask是一个使用Python编写的轻量级Web应用框架,它简洁而灵活,适用于开发小型至中型的Web应用。

项目背景:使用Xception预训练模型完成ai换脸检测。

一、程序撰写

这边我没有去训练自己的模型,使用的是pytorch里面的Xception模型,当然用tensorflow和Keras也是可以的,主要更改的地方是修改了模型最后一层的输出,因为换脸检测的输出是有没有进行换脸,有和无,相当于是二分类问题,然后xception模型是基于imagenet训练而来,输出有1000个分类,所以我们需要修改模型的最后一层以适应二分类任务:

# 打印模型结构,查找最后一层
# print("Model structure:\n", model)

# 获取最后一层的输入特征数
num_features = model.get_classifier().in_features

# 修改模型的最后一层以适应二分类任务
model.fc = nn.Linear(num_features, 1)  # 二分类任务:1 输出神经元
model.sigmoid = nn.Sigmoid()  # 添加 Sigmoid 激活函数

model.eval()  # 将模型设置为评估模式

这边只粘贴出部分,或许完整的程序将公布到我的Github上,有兴趣的小伙伴可以关注一下我,这是我的Github id:

                                  

二、uswgi和Flask的下载和使用

1.安装Flask和uswgi:

pip install flask uwsgi

2.创建一个app.py把fask应用代码粘贴进去,这边flask应用代码我用最简单的示意一下

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, World!'
# 下面这两句在使用uwsgi 测试的时候要注释掉,是在没有集成uwsgi前测试用:python app.py
if __name__ == '__main__':
    app.run()

3.编写uwsgi.ini文件

[uwsgi]
#地址端口
http = 0.0.0.0:5005
#项目路径
chdir = /app/deepfake_detection
#项目启动文件
wsgi-file = app.py
# 项目需要调用的启动类
callable = app
# 进程线程设置
processes = 1
threads = 5
#PID 文件路径
pidfile = /app/deepfake_detection/logs/uwsgi.pid
# 是否需要主进程
master = True
# CUDA上使用多线程
lazy = true
#添加日志
daemonize = /app/deepfake_detection/uwsgi.log
# 缓存区
buffer-size = 65535

4.启动uwsgi服务

# uwsgi.ini要换成给你的名字
uwsgi --ini uwsgi.ini

5.打开浏览器访问设置的端口

#192.168.0.120是你服务器的地址,5005是端口号,需要具体情况更改
http://192.168.0.120:5005

6.停止uwsgi服务

uwsgi --stop uwsgi.ini

注:本篇文章只是记录了大概流程,实际在做的过程中,可能下载uwsgi就会遇到各种问题,下载失败,最后可能还需要源码安装,然后完整的项目文件我会稍后公布到Github上,关注可取

 docker命令:

1.进入docker容器:

docker exec -it my_container /bin/bash
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值