ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

从零实战:torch2trt 社区贡献指南,写出你的第一个 PR

从零实战:torch2trt 社区贡献指南,写出你的第一个 PR 从零实战torch2trt 社区贡献指南写出你的第一个 PR【免费下载链接】torch2trtAn easy to use PyTorch to TensorRT converter项目地址: https://gitcode.com/gh_mirrors/to/torch2trttorch2trt 是一个 PyTorch 转 TensorRT 的转换工具一行调用就能把 PyTorch 模块转成 TensorRT 引擎。想参与 torch2trt 社区贡献读完这篇你能独立完成四件事看懂项目机制、提交一份合格 issue、写出第一个转换器 PR、跑完测试并贴出验证结果。先看懂项目30 分钟熟悉 torch2trt核心机制一句话转换器把一段 Python 转换函数挂到某个 PyTorch 函数的调用上用tensorrt_converter注册样本数据前向传播时每触发一次被挂的函数对应的转换函数就被调用一次在 TensorRT 网络里生成等价图层。你可以按这个顺序读docs/先翻 getting started 和 usage搞清楚torch2trt()的输入输出torch2trt/converters/看几个现成转换器怎么注册、怎么操作上下文对象tests/看测试怎么组织后面提交 PR 要用到。第一次贡献从哪入手提 issue 的正确姿势不用一上来就写代码。遇到问题先在 issues 里搜一遍没有的话提一份这是门槛最低、也最被欢迎的 torch2trt 贡献方式。一份合格 issue 的信息清单PyTorch 版本python -c import torch; print(torch.__version__)TensorRT 版本同上查tensorrt平台Jetson Nano、Xavier、x86 加显卡说清具体型号要转换的模块具体模型结构最好能贴出最小可复现代码复现步骤从 clone 到报错的完整命令序列转换失败先自查模型里含不支持的操作是最常见的失败原因。项目里维护了一份已知不支持方法的列表见 unimplemented_converters.py对照一下说不定你遇到的bug其实是待实现的转换器——那正好可以作为你第一个 PR 的选题。写出你的第一个 torch2trt 转换器 PR读懂 ctx 上下文对象每个转换器都是一个接收ctx的函数字段含义ctx.network正在构建的 TensorRT 网络ctx.method_args/ctx.method_kwargs传给 PyTorch 函数的位置参数与关键字参数ctx.method_returnPyTorch 函数的返回值PyTorch 张量规则只有一条必须在输出张量上设置_trt属性指向网络中对应输出的 TensorRT 张量。比如给 LeakyReLU 写转换器tensorrt_converter(torch.nn.functional.leaky_relu) def convert_leaky_relu(ctx): input get_arg(ctx, input, pos0, defaultNone) negative_slope get_arg(ctx, negative_slope, pos1, default0.01) layer ctx.network.add_activation(input._trt, trt.ActivationType.LEAKY_RELU) layer.alpha negative_slope ctx.method_return._trt layer.get_output(0)写完先别急着提交下一节的质量关必须过。提交前过质量关跑测试与交叉验证先 clone 仓库并装好开发环境git clone https://gitcode.com/gh_mirrors/to/torch2trt cd torch2trt python setup.py develop然后跑转换器的交叉验证测试python3 -m torch2trt.test --nameconverters --tolerance1e-2它的工作方式是同一个输入分别喂给原 PyTorch 模块和转换后的 TensorRT 引擎比较两边输出的最大误差tolerance就是误差上限单位是绝对误差。踩坑提示测试不会硬性失败但会把构建错误和超差的检查项突出显示。PR 里必须附上这条命令的完整运行输出以及 PyTorch 版本、TensorRT 版本和平台信息维护者才能判断你的改动在别处会不会出问题。进阶选项实验性功能与插件量化感知训练QAT位于 torch2trt/contrib/qat/配 examples/contrib/quantization_aware_training/ 的示例用scripts/build_contrib.sh构建自定义 C 插件源码在 plugins/src/用cmake -B build . cmake --build build --target install ldconfig编译安装适合 TensorRT 原生不支持的算子。这两块等你的第一个 PR 合入后再碰也不迟。PR 该长什么样社区协作规范一个 PR 只解决一个问题拆得越细评审越快合入概率越高信息齐全PR 描述里写清 PyTorch 版本、TensorRT 版本、平台、测试输出风格对齐新转换器参考 converters 目录里现成代码的写法命名、注册方式保持一致改了文档相关内容的用./scripts/test_docs.sh在本地预览后再提交。接下来去哪资源与求助渠道GitHub Issues先搜后问带着复现信息提问examples/端到端示例图像分类、OCR 等可以照着跑一遍熟悉转换流程tests/新加转换器时仿照 converter_tests 写交叉验证用例评审会更认可docs/写文档改动前先看现有结构。别从重构项目开始。去 issues 列表里挑一个低难度的标签比如某个具体算子缺失按本文顺序走读 converters 写代码 → 跑测试贴输出 → 提 PR。【免费下载链接】torch2trtAn easy to use PyTorch to TensorRT converter项目地址: https://gitcode.com/gh_mirrors/to/torch2trt创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表