以下是在Ubuntu上部署PyTorch模型的主要方法,步骤基于搜索资源整合:
sudo apt update && sudo apt upgrade# Conda
conda create -n pytorch_env python=3.8
conda activate pytorch_env
# 或venv
python3 -m venv pytorch_env
source pytorch_env/bin/activate
pip install torch torchvision torchaudiopip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113(需替换为实际CUDA版本)。.pt或.pth文件,例如:torch.save(model.state_dict(), 'model.pth')
import torch
from model import MyModel # 假设模型定义在此文件中
model = MyModel()
model.load_state_dict(torch.load('model.pth'))
model.eval()
# 示例输入(需根据模型调整)
input_data = torch.randn(1, 3, 224, 224)
with torch.no_grad():
output = model(input_data)
print(output)
运行:python deploy.py。pip install flaskapp.py:from flask import Flask, request, jsonify
import torch
from model import MyModel
app = Flask(__name__)
model = MyModel()
model.load_state_dict(torch.load('model.pth'))
model.eval()
@app.route('/predict', methods=['POST'])
def predict():
data = request.json['input'] # 假设输入为JSON格式
input_tensor = torch.tensor(data).unsqueeze(0)
with torch.no_grad():
output = model(input_tensor)
return jsonify({'output': output.tolist()})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
python app.py,通过HTTP请求调用。pip install gunicorn,运行:gunicorn -w 4 -b 0.0.0.0:5000 app:app(-w指定进程数)。Dockerfile:FROM pytorch/pytorch:latest
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
docker build -t pytorch-model .
docker run -p 5000:5000 pytorch-model
```。
pip install torchserve torch-model-archiverscripted_model = torch.jit.script(model)
scripted_model.save('model.ts')
torchserve --start --model_name=my_model --model_path=/path/to/model.ts。torch.onnx.export(model, input, 'model.onnx')。curl或Postman测试API接口:curl -X POST -H "Content-Type: application/json" -d '{"input": [1,2,3]}' http://localhost:5000/predict
参考来源: