在CentOS上部署PyTorch模型通常涉及以下几个步骤:
系统更新:
sudo yum update -y
安装Python和依赖:
sudo yum install -y python3 python3-pip
python3 -m venv myenv
source myenv/bin/activate
安装PyTorch:
pip install torch torchvision torchaudio
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
准备模型:
.pth
文件或者定义一个可以加载模型的Python脚本。编写服务代码:
from flask import Flask, request, jsonify
import torch
from model import SimpleModel # 假设模型定义在model.py中
app = Flask(__name__)
# 加载模型
model = SimpleModel()
model.load_state_dict(torch.load('model.pth'))
model.eval()
@app.route('/predict', methods=['POST'])
def predict():
data = request.json
# 假设data是一个包含模型输入的张量数据
input_tensor = torch.tensor(data['input']).float()
with torch.no_grad():
output = model(input_tensor)
return jsonify(output.tolist())
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
运行服务:
nohup
命令来确保服务在你关闭终端后仍然运行:nohup python3 your_service_script.py &
配置防火墙:
sudo firewall-cmd --zone=public --add-port=5000/tcp --permanent
sudo firewall-cmd --reload
使用Docker部署(可选):
FROM python:3.8-slim
# 安装PyTorch和其他依赖
RUN pip install torch torchvision torchaudio
# 复制模型和服务代码到容器中
COPY your_model.pth /app/your_model.pth
COPY your_service_script.py /app/your_service_script.py
# 设置工作目录
WORKDIR /app
# 运行服务
CMD ["python", "./your_service_script.py"]
docker build -t your-model-service .
docker run -p 5000:5000 your-model-service
以上步骤提供了一个基本的框架,具体的部署细节可能会根据你的模型和应用场景有所不同。