centos

CentOS PyTorch模型如何部署

小樊
35
2025-09-26 18:10:11
栏目: 智能运维

1. 安装基础环境与PyTorch
首先确保CentOS系统安装了Python 3和pip(Python包管理工具),可通过以下命令安装:

sudo yum install python3 python3-pip

为避免依赖冲突,建议创建虚拟环境(可选但推荐):

python3 -m venv pytorch_env  # 创建虚拟环境
source pytorch_env/bin/activate  # 激活虚拟环境

根据是否使用GPU安装PyTorch:

2. 准备PyTorch模型
将训练好的模型保存为可加载的格式(如.pth文件)。若模型定义在model.py中,可通过以下代码保存:

import torch
from model import YourModel  # 导入模型类

model = YourModel()  # 实例化模型
torch.save(model.state_dict(), 'model.pth')  # 保存模型权重

部署时需加载模型并设置为推理模式(eval()):

from model import YourModel
model = YourModel()
model.load_state_dict(torch.load('model.pth'))  # 加载权重
model.eval()  # 关闭dropout、batchnorm等训练层

3. 编写模型服务代码
使用Flask或FastAPI创建Web服务,提供模型推理接口。以下是Flask示例:

from flask import Flask, request, jsonify
import torch
from model import YourModel  # 导入模型类

app = Flask(__name__)
model = YourModel()
model.load_state_dict(torch.load('model.pth'))
model.eval()

@app.route('/predict', methods=['POST'])
def predict():
    # 获取输入数据(假设为JSON格式,包含'features'字段)
    data = request.json
    input_tensor = torch.tensor(data['features']).unsqueeze(0)  # 转换为模型输入格式(添加batch维度)
    
    # 推理(禁用梯度计算,提升性能)
    with torch.no_grad():
        output = model(input_tensor)
    
    # 返回预测结果(转换为JSON可序列化格式)
    return jsonify(output.tolist())

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)  # 监听所有IP的5000端口

4. 部署与运行服务

5. 可选优化:使用Docker容器化
通过Docker隔离环境,简化部署流程。创建Dockerfile

FROM python:3.8-slim  # 使用轻量级Python镜像
WORKDIR /app
# 安装PyTorch(以CPU版本为例,GPU版本需替换为对应CUDA镜像)
RUN pip install torch torchvision torchaudio
# 复制模型与服务代码
COPY model.pth /app/model.pth
COPY your_flask_app.py /app/your_flask_app.py
# 暴露端口并运行服务
EXPOSE 5000
CMD ["python", "your_flask_app.py"]

构建并运行容器:

docker build -t pytorch-model-service .  # 构建镜像
docker run -p 5000:5000 pytorch-model-service  # 运行容器(映射5000端口)

6. 配置安全与监控

注意事项

0
看了该问题的人还看了