ubuntu

Ubuntu上如何部署PyTorch模型

小樊
40
2025-08-26 00:35:34
栏目: 智能运维

在Ubuntu上部署PyTorch模型通常涉及以下几个步骤:

  1. 安装Python和PyTorch

    • 确保你的Ubuntu系统已经安装了Python。你可以使用以下命令来安装Python(如果尚未安装):
      sudo apt update
      sudo apt install python3 python3-pip
      
    • 安装PyTorch。你可以从PyTorch官网获取适合你系统的安装命令。例如,如果你需要CUDA支持,可以使用以下命令:
      pip3 install torch torchvision torchaudio
      
      如果不需要CUDA支持,可以使用CPU版本的PyTorch:
      pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
      
  2. 准备模型

    • 确保你的PyTorch模型已经训练完成,并且保存在本地文件系统中。通常,模型会以.pth.pt格式保存。
  3. 编写部署脚本

    • 创建一个Python脚本来加载模型并进行预测。以下是一个简单的示例脚本:
      import torch
      from torchvision import transforms
      from PIL import Image
      
      # 加载模型
      model = torch.load('path_to_your_model.pth')
      model.eval()  # 设置模型为评估模式
      
      # 图像预处理
      preprocess = transforms.Compose([
          transforms.Resize(256),
          transforms.CenterCrop(224),
          transforms.ToTensor(),
          transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
      ])
      
      # 加载并预处理图像
      image = Image.open('path_to_your_image.jpg')
      input_tensor = preprocess(image)
      input_batch = input_tensor.unsqueeze(0)  # 创建一个mini-batch作为模型的输入
      
      # 进行预测
      with torch.no_grad():
          output = model(input_batch)
      
      # 处理输出
      probabilities = torch.nn.functional.softmax(output[0], dim=0)
      print(probabilities)
      
  4. 运行部署脚本

    • 在终端中运行你的Python脚本:
      python3 your_deployment_script.py
      
  5. 使用Web框架(可选)

    • 如果你想通过Web服务提供模型预测,可以使用Flask或FastAPI等Web框架。以下是一个使用Flask的简单示例:
      from flask import Flask, request, jsonify
      import torch
      from torchvision import transforms
      from PIL import Image
      
      app = Flask(__name__)
      
      # 加载模型
      model = torch.load('path_to_your_model.pth')
      model.eval()
      
      # 图像预处理
      preprocess = transforms.Compose([
          transforms.Resize(256),
          transforms.CenterCrop(224),
          transforms.ToTensor(),
          transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
      ])
      
      @app.route('/predict', methods=['POST'])
      def predict():
          file = request.files['image']
          image = Image.open(file.stream)
          input_tensor = preprocess(image)
          input_batch = input_tensor.unsqueeze(0)
      
          with torch.no_grad():
              output = model(input_batch)
      
          probabilities = torch.nn.functional.softmax(output[0], dim=0).tolist()
          return jsonify(probabilities)
      
      if __name__ == '__main__':
          app.run(host='0.0.0.0', port=5000)
      
    • 运行Flask应用:
      python3 your_flask_app.py
      
    • 现在你可以通过HTTP请求访问http://your_server_ip:5000/predict来获取预测结果。

通过以上步骤,你可以在Ubuntu上部署PyTorch模型,并根据需要进行扩展和优化。

0
看了该问题的人还看了