0
点赞
收藏
分享

微信扫一扫

模型部署学习笔记(一)

迪莉娅1979 2022-02-06 阅读 66
人工智能

一、ONNX(Open Neural Network Exchange)

1、是什么:ONNX是微软和 Facebook 发布的一个深度学习开发工具生态系统,定义了一种和环境、平台均无关的标准的、开放的格式,用于表示深度学习模型。

2、作用:“翻译”

①连接不同深度学习框架,使得不同的模型可以转换;

②采用相同格式存储模型数据并交互,让不同的神经网络开发框架互通互用。

3、常见转换路线:

  • Pytorch —— ONNX —— TensorRT
  • Pytorch —— ONNX —— TVM
  • TensorFlow —— ONNX —— NCNN

二、TensorFlow Serving:TensorFlow提供的部署线上模型推理方案,将训练好的模型直接上线并提供服务。将模型部署到线上,并提供合适的接口给外部调用。

三、NCNN和TensorRT:将从云端完成训练后的算法高效迁移到异构的边缘智能芯片上执行。【边缘、芯片推理】

1、NCNN:腾讯推出的针对移动部署的推理框架,无第三方依赖,在手机端CPU运算速度优于开源框架,可以在PC端进行推理;针对CPU的性能进行部署优化;其推理所需要的网络文件和权重文件分别为(.param、.bin)。

2、TensorRT:NVIDIA打造的cuda神经网络推理库,是一个C++库;将其他框架的模型统一全部转换到TensorRT中,然后在TensorRT中针对Nvidia自家的GPU优化,进行部署加速,针对运行时性能自动优化训练过的神经网络;针对GPU和CPU来优化和加速模型推理,支持INT8量化和FP16量化,只能在GPU设备进行;TensorRT支持.engine格式,关于其他格式文件到该格式文件的转换方式有以下两种:

①开源框架训练的模型——ONNX——.engine

②直接用tensorrt将训练的模型转化为.engine(tensorrt,开源项目,将项目转换和部署集合)

举报

相关推荐

0 条评论