# 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

##
简介
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 | 参数解释 | 说明 | |
|---|---|---|---|---|
| 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() | 删除内存地址 | |