前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Polygraphy 安装教程

Polygraphy 安装教程

作者头像
闻说社
发布2022-10-25 17:39:10
1.1K0
发布2022-10-25 17:39:10
举报
Polygraphy 安装教程
Polygraphy 安装教程

Polygraphy在我进行模型精度检测和模型推理速度的过程中都有用到,因此在这做一个简单的介绍。

Polygraphy 介绍

polygraphy 是一个深度学习模型调试工具,包含 python API命令行工具,它的功能如下:

  • 使用多种后端运行推理计算,包括 TensorRT, onnxruntime, TensorFlow;
  • 比较不同后端的逐层计算结果;
  • 由模型生成 TensorRT 引擎并序列化为.plan;
  • 查看模型网络的逐层信息;
  • 修改 Onnx 模型,如提取子图,计算图化简;
  • 分析 Onnx 转 TensorRT 失败原因,将原计算图中可以 / 不可以转 TensorRT 的子图分割保存;
  • 隔离 TensorRT 终端 错误 tactic;

安装

源码安装:

Github地址:Polygraphy

  • 根据自己的cuda以及cudnn版本选择对应的tensorrt版本,并将源码clone下来
  • 使用anaconda创建虚拟环境(注:polygraphy不支持python2.x)
    • conda create -n polygraphy python=3.7
  • 在polygraphy目录进入创建的虚拟环境 执行
  • 完成polygraphy的安装

简单安装

  • 使用anaconda创建虚拟环境(注:polygraphy不支持python2.x)
    • conda create -n polygraphy python=3.7
  • 进入创建的虚拟环境执行
  • 完成安装

安装依赖

Polygraphy 对其他 Python 包没有硬依赖。 但是,包含的大部分功能 确实需要其他 Python 包。 就比如对onnx和trt模型推理对比就需要安装onnxruntime和nvidia-tensorrt包。

自动安装依赖

当运行的程序需要哪些包时,程序会自动去安装对应的包要启用此功能可以在环境变量中做如下设置:

  • export POLYGRAPHY_AUTOINSTALL_DEPS=1
手动安装

如果你将tensorrt源码clone到了本地,那么可以在 tools/Polygraphy/polygraphy/backend 目录下的文件夹找到requirement.txt ,根据该文件你可以安装对应的包。

  • python -m pip install -r polygraphy/backend//requirements.txt

如果需要其他软件包,将记录警告或错误。 您可以使用以下方法手动安装其他软件包:

  • python -m pip install <package_name>

简单使用

在 polygraphy\example 目录下存放有多个示例,包括Python API,CLI,现在来简单介绍一下Polygraphy/examples/cli/run/01_comparing_frameworks 这个示例:

  • 首先准备一个onnx模型
    • input name : data
    • input shape : batchsize x 3 x 224 x 224
  • 使用polygraphy 生成trt引擎,并将onnxruntime 和 trt的计算结果进行对比
代码语言:javascript
复制
polygraphy run yawn_224.onnx --onnxrt --trt --workspace 256M --save-engine yawn-test.plan --fp16 --verbose --trt-min-shapes 'data:[1,3,224,224]' --trt-opt-shapes 'data:[3,3,224,224]' --trt-max-shapes 'data:[8,3,224,224]' > test.txt

#  命令解析
polygraphy run yawn_224.onnx  					# 使用onnx模型
--onnxrt --trt 													# 使用 onnxruntime 和 trt 后端进行推理
--workspace 256M												#  使用256M空间用于生成.plan 文件
--save-engine yawn-test.plan 		 				#   保存文件
--fp16 																	#   开启fp16模式
--verbose 															#   显示生成细节
--trt-min-shapes 'data:[1,3,224,224]'		# 设定 最小输入形状
--trt-opt-shapes 'data:[3,3,224,224]'   # 设定 最佳输入形状
--trt-max-shapes 'data:[8,3,224,224]'   # 设定 最大输入形状
> test.txt                              # 将终端显示重定向test.txt 文件中 
复制代码
  • Result
    • 其中 onnxrt_runner 表示的是onnxruntime的推理输出,trt-runner 为trt的输出,两者之间的输出误差对比由 Error Metrics 给出.
    • 误差参数含义

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Polygraphy 介绍
  • 安装
    • 源码安装:
      • 简单安装
        • 安装依赖
          • 自动安装依赖
          • 手动安装
      • 简单使用
      相关产品与服务
      命令行工具
      腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档