PyTorch如今发布到1.1稳定版本,新增的功能让模型部署变得更为地简单,本文记录如何利用C++来调用PyTorch训练好的模型,其实也是利用官方强大的LibTorch库。
LibTorch的安装
虽然说安装,其实就是下载官方的LibTorch包而已,从
官方网站
中选择PyTorch(1.1),libtorch,以及cuda的版本,其中会出现下载链接,这里为cuda9.0的链接
https://download.pytorch.org/libtorch/cu90/libtorch-shared-with-deps-latest.zip
下载好找个路径解压。解压完放在那不动!!
PyTorch模型训练
这里我使用了最为简单ResNet50的预训练模型,其中保存跟踪模型的代码如下:
import torch
import torchvision.models as models
from PIL import Image
import numpy as np
image = Image.open("build/airliner.jpg") #图片发在了build文件夹下
image = image.resize((224, 224),Image.ANTIALIAS)
image = np.asarray(image)
image = image / 255
image = torch.Tensor(image).unsqueeze_(dim=0)
image = image.permute((0, 3, 1, 2)).float()model = models.resnet50(pretrained=True)
model = model.eval()
resnet = torch.jit.trace(model, torch.rand(1,3,224,224))
#