深度学习模型部署(十)模型部署配套工具二

上篇blog讲了trtexec和onnx_graphsurgeon两个工具,一个用于将onnx转化为trt模型,另一个用于对onnx模型进行修改。这篇blog讲polygraphy和nsight systems,前者用于进行模型优化以及结果验证,后者用于性能分析。

polygraph

polygraph有API库,也有命令行工具,命令行工具有多个模式:

  • run模式:推理模型,得到运行细节,包括推理时间,各层的推理时间等信息,可以看作一个推理测试器
  • debug模式:检测onnx模型转trt模型中的错误,并将模型分为可转换部分和不可转换部分。
  • data模式:调整分析输入输出的数据和模型权重
  • convert模式:基本等同于run
  • surgeon模式:对模型进行优化
    run模式官方文档
    例子:
polygraphy run model-02.plan \ # 推理该模型,这里也可以用onnx模型
    --trt \ # 使用TensorRT推理,--onnxrt是指用onnxruntime推理
    --input-shapes 'tensorX:[4,1,28,28]' \ # 输入的shape,tensorX是对应输入的名称
    --verbose \ # 生成详细信息
    > result.log 2>&1 # 将详细信息重定向到result.log

polygraphy run modelB.onnx \
    --trt \
    --plugins ./AddScalarPlugin.so \ # 添加插件,tensorRT插件再下篇blog讲
    > result-07.log 2>&1

surgeon模式官方文档
例子:

polygraphy surgeon sanitize yolov5s_v7.onnx \
    --fold-constant \
    -o modelA-FoldConstant.onnx \
    > result.log

inspect模式文档
例子:

polygraphy inspect capability yolov5s.onnx > result_capability.log # 查看tensorRT是否支持该模型

其他用到再写,不在工具学习上做无用功

nsight systems

官方文档
在这里插入图片描述

nv官方教程地址
四个工具的整体工作流程:
1、使用polygraphy判断tensorRT是否支持,如果支持,进行优化,不支持则处理不支持的层
2、如果不支持,使用onnx_graphsurgeon对模型进行修改
3、使用trtexec进行测试,查看推理效果,如果推理时间不理想,使用nsight systems查看哪里时间影响最大
4、如果精度不理想,使用polygraphy查看整体模型中每一层的输出,查看输出误差较大的层,进行处理
6、得到一个工作状态良好的模型,用TensorRT进行推理部署。
还是那句话,不要在工具上费工夫,用到啥再学啥。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值