littlebot
Published on 2025-04-15 / 0 Visits
0

【源码】基于TensorRT的LeViT模型优化与推理

项目简介

本项目聚焦于利用TensorRT对LeViT模型开展优化与推理加速工作。LeViT是Facebook Research研发的基于Transformer的图像分类模型,具备较高的推理速度与精度。项目借助FP16和INT8优化、自定义Softmax插件以及TensorRT引擎构建,达成了LeViT模型的显著加速。

项目的主要特性和功能

  • 模型转换:可将PyTorch格式的LeViT模型转换为TensorRT格式。
  • 性能优化:通过FP16和INT8量化以及自定义Softmax插件,大幅提升模型推理速度。
  • 推理测试:提供脚本用于测试TensorRT和PyTorch模型的推理速度与精度。
  • 引擎构建:支持构建TensorRT引擎,并运用自定义插件进行优化。

安装使用步骤

环境准备

  • 拉取TensorRT Docker镜像: shell docker run --gpus all -it --rm nvcr.io/nvidia/tensorrt:22.05-py3
  • 拉取代码仓库(此处原总结未给出命令,需补充完整代码仓库地址): shell
  • 安装Python依赖: shell pip3 install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu113

运行步骤

  • 构建并运行Softmax插件: shell cd LeViT ./build_engine_run_plugin.sh
  • 构造TensorRT引擎: shell cd LeViT python3 trt_convert_onnx.py MODEL python3 trt_build_engine.py --onnx-path ONNX_MODEL --engine-path ENGINE_PATH [--enable-fp16] [--enable-int8]
  • 测试模型精度: shell python3 valid.py --data-path IMAGENET_ROOT --model MODEL_NAME --type TYPE --engine-path ENGINE_PATH
  • 测试模型推理速度: shell trtexec --loadEngine=ENGINE_PATH --shapes=input:16x3x224x224 --useSpinWait
  • 生成calibration数据集: shell python3 generate_calibration_data.py --data-path IMAGENET_ROOT

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】