基于Win10+TensorRT+C++部署Siamese图像相似度网络代码讲解篇

一共分为两部分

  • python如何从pytoch的.pth权重转为onnx模型权重(适用95%以上的模型)
  • C++如何用TensorRT实现engine模型推理(稍微改动即可适应新模型)

Python部分

模块一:从.pth到.pt。其实部分pth是可以直接转onnx的,但也存在无法直接转换的可能,为了提高成功率,先用torch.jit.trace转成pt,即torchscript可调用的模型后再转onnx,可大幅度提高成功率。从函数功能上来讲,trace函数可以做到类似冻结图计算的操作,只记录在给定张量上运行给定函数时所执行的操作,以此提高转换成功率。对于Siamese网络而言,必须先转为pt后才能成功转为onnx,否则会报异常。转换代码及注释如下:

def pth2pt():
    #初始化模型类,输入参数的数量和维度需要和原始模型保持一致
    model = siamese([needShape, needSha

你可能感兴趣的:(零/小样本学习干货分享,TensorRT,Siamese,代码,C++,SDK打包)