# TensorRT-CSharp-API **Repository Path**: seaflyren/TensorRT-CSharp-API ## Basic Information - **Project Name**: TensorRT-CSharp-API - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-18 - **Last Updated**: 2025-07-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ![TensorRTSharp](https://socialify.git.ci/guojin-yan/TensorRTSharp/image?description=1&descriptionEditable=💞TensorRT%20wrapper%20for%20.NET💞&forks=1&issues=1&logo=https%3A%2F%2Fs2.loli.net%2F2023%2F04%2F11%2FOtsq6zAaZnwxP1U.png&name=1&owner=1&pattern=Circuit%20Board&pulls=1&stargazers=1&theme=Light) ## 简介    NVIDIA®TensorRT的核心™ 是一个C++库,有助于在NVIDIA图形处理单元(GPU)上进行高性能推理。TensorRT采用一个经过训练的网络,该网络由一个网络定义和一组经过训练的参数组成,并生成一个高度优化的运行时引擎,为该网络执行推理。TensorRT通过C++和Python提供API,帮助通过网络定义API表达深度学习模型,或通过解析器加载预定义模型,从而使TensorRT能够在NVIDIA GPU上优化和运行它们。TensorRT应用了图优化、层融合等优化,同时还利用高度优化的内核的不同集合找到了该模型的最快实现。TensorRT还提供了一个运行时,您可以使用该运行时在开普勒一代以后的所有NVIDIA GPU上执行该网络。TensorRT还包括Tegra中引入的可选高速混合精度功能™ X1,并用Pascal™, Volta™, Turing™, and NVIDIA® Ampere GPU 架构。   在推理过程中,基于 TensorRT 的应用程序的执行速度可比 CPU 平台的速度快 40 倍。借助 TensorRT,您可以优化在所有主要框架中训练的神经网络模型,精确校正低精度,并最终将模型部署到超大规模数据中心、嵌入式或汽车产品平台中。   官方发行的 TensorRT未提供C#编程语言接口,因此在使用时无法实现在C#中利用 TensorRT进行模型部署。在该项目中,利用动态链接库功能,调用官方依赖库,实现在C#中部署深度学习模型。 ## 安装 ### TensorRT安装 TensorRT依赖于CUDA加速,因此需要同时安装CUDA与TensorRT才可以使用,且CUDA与TensorRT版本之间需要对应,否者使用会出现较多问题,因此此处并未提供Nuget包,组要根据自己电脑配置选择合适的版本安装后重新编译本项目源码,下面是TensorRT安装教程:[【TensorRT】NVIDIA TensorRT 安装 (Windows C++)_椒颜皮皮虾྅的博客-CSDN博客](https://blog.csdn.net/Grape_yan/article/details/127320959) ## API文档 ### 命名空间 ```c# using TensorRTSharp; ``` ### 模型推理API ### 模型推理API
序号 API 参数解释 说明
1 方法 onnx_to_engine() 将onnx模型转为engine 将onnx模型转为engine格式,并按照设置转换模型精度
参数 string onnx_file_path ONNX模型路径
string engine_file_path 输出模型路径
string type 模型精度
序号 API 参数解释 说明
1 方法 Nvinfer()/init() 构造函数/初始化函数 初始化推理核心,读取本地engine模型
参数 string engine_filename 模型路径
2 方法 void creat_gpu_buffer() 创建gpu显存缓存
3 方法 void load_image_data() 设置图片输入数据 载入图片数据
参数 string node_name 输入节点名称
byte[] image_data 输入数据
ulong image_size 图片大小
BNFlag BN_means 数据处理类型:
type = 0: 均值方差归一化、常规缩放
type = 1: 普通归一化(1/255)、常规缩放
type = 2: 不归一化、常规缩放
type = 0: 均值方差归一化、仿射变换
type = 1: 普通归一化(1/255)、仿射变换
type = 2: 不归一化、仿射变换
4 方法 void infer() 模型推理
5 方法 void read_infer_result() 读取推理结果数据 支持读取Float32
参数 string node_name 输出节点名
int data_length 输出数据长度
6 方法 void delete() 删除内存地址