• 使用Tensorrt的一般步骤


    使用Tensorrt的一般步骤

    TensorRT的使用包括两个阶段:build and deployment。

    build:该阶段主要完成模型转换(从caffe或TensorFlow到TensorRT),如下图所示,在模型转换时会完成前述优化过程中的层间融合,精度校准。这一步的输出是一个针对特定GPU平台和网络模型的优化过的TensorRT模型,这个TensorRT模型可以序列化存储到磁盘或内存中。存储到磁盘中的文件称之为 planfile。

    Deploy:该阶段主要完成推理过程,如下图所示。将上一个步骤中的plan文件首先反序列化,并创建一个 runtime engine,然后就可以输入数据(比如测试集或数据集之外的图片),然后输出分类向量结果或检测结果。

    以onnx模型为例检测介绍,主要分为3步,如下图所示,第一步是导入模型,这包括从磁盘上保存的文件加载模型,并将其从原始框架转换为TensorRT网络。ONNX是表示深度学习模型的标准,使它们能够在框架之间传输(Caffe2、Chainer、CNTK、paddle、PyTorch和MXNet都支持ONNX格式)。接下来,基于输入模型、目标GPU平台和指定的其他配置参数,构建一个优化的TensorRT引擎。最后一步是向TensorRT引擎提供输入数据以执行推理。

    需要用的tensorrt的组件如下:

    • ONNX解析器:以ONNX格式的经过训练的模型作为输入,并用TensorRT填充网络对象
    • Builder:在TensorRT中获取一个网络并生成一个为目标平台优化的引擎
    • Engine:获取输入数据,执行推理并发出推理输出
    • Logger:与生成器和引擎关联的对象,用于在生成和推断阶段捕获错误、警告和其他信息

    大家可以根据以下coding的例子进行相关实验:

    1. >> git clone https://github.com/parallel-forall/code-samples.git
    2. >> cd code-samples/posts/TensorRT-introduction
    3. >> wget https://s3.amazonaws.com/onnx-model-zoo/resnet/resnet50v2/resnet50v2.tar.gz // Get ONNX model and test data
    4. >> tar xvf resnet50v2.tar.gz # unpack model data into resnet50v2 folder
    5. >> apt-get update
    6. >> apt install libprotobuf-dev protobuf-compiler # install protobuf to read the input data which is in .pb format
    7. >> git clone --recursive https://github.com/onnx/onnx.git # pull onnx repository from github
    8. >> cd onnx
    9. >> cmake . # compile and install onnx
    10. >> make install -j12
    11. >> cd ..
    12. >> make # compile the TensorRT C++ sample code
  • 相关阅读:
    STM32F10x SPL V3.6.2 集成 FreeRTOS v202112
    ROS-Unity连接教程
    Cpolar+Emlog搭建指南—在Ubuntu上轻松创建个人博客,无需专业技能
    Better And Better连Mac OS都在效仿的软件
    南京大学计院夏令营历年机试笔试题汇总(刷题版)
    循环神经网络
    GDCM:测试gdcm::FileStreamer的编程示例
    操作系统笔记
    前端面试题日常练-day40 【面试题】
    Rust有没有信号量机制,在缓存有数据的时候才允许等待的进程取数据?
  • 原文地址:https://blog.csdn.net/weixin_55035144/article/details/133744932