快捷方式

模板类 Int8Calibrator

继承关系

基类

  • private Algorithm

类文档

template<typename Algorithm, typename DataLoaderUniquePtr>
class Int8Calibrator : private Algorithm

基于指定的 TensorRT 校准算法和 LibTorch DataLoader 的通用 Int8Calibrator 实现。

模板参数
  • Algorithm, : – 类 nvinfer1::IInt8Calibrator(默认值:nvinfer1::IInt8EntropyCalibrator2) - 要使用的算法

  • DataLoaderUniquePtr, : – std::unique_ptr<torch::data::DataLoader> - DataLoader 类型

公共函数

inline Int8Calibrator(DataLoaderUniquePtr dataloader, const std::string &cache_file_path, bool use_cache)

构造一个新的 Int8Calibrator 对象。

使用提供的 DataLoader,构造一个校准器,该校准器可用于与 Torch-TensorRT 的 PTQ。

参数
  • dataloader, : – std::unqiue_ptr<torch::data::DataLoader> - 指向 DataLoader 的唯一指针,应该是 make_data_loader 工厂返回的值

  • cache_file_path, : – const std::string& - 存储/查找校准缓存的路径

  • use_cache – : bool - 是否使用缓存(如果存在)

inline int getBatchSize () const noexceptoverride

获取下一批的批次大小(由于 TRT 和显式批次存在问题,始终为 1)

返回值

int

inline bool getBatch (void *bindings[], const char *names[], int nbBindings) noexceptoverride

获取下一批。

参数
  • bindings, : – void*[] - 绑定指针数组(从 TensorRT 校准器中输入),这些缓冲区应使用每个输入的批次数据填充

  • names, : – const char*[] - 绑定的名称

  • nbBindings, : – int - 绑定的数量

返回值

true - 校准器可以使用新的批次

false - 校准器不能使用新的批次

inline const void * readCalibrationCache (size_t &length) noexceptoverride

读取校准缓存。

如何从校准缓存读取,仅在设置 use_cache 时启用

参数

length

返回值

const void* - 指向缓存数据的指针

inline void writeCalibrationCache (const void *cache, size_t length) noexceptoverride

写入校准缓存。

将 TensorRT 提供的校准缓存写入指定文件

参数
  • cache, : – const void* - 缓存数据

  • length, : – size_t - 缓存的长度

inline operator nvinfer1::IInt8Calibrator*()

运算符以转换为 nvinfer1::IInt8Calibrator*

方便函数,用于转换为 IInt8Calibrator*,以便轻松分配给 CompileSpec 中的 ptq_calibrator 字段

返回值

nvinfer1::IInt8Calibrator*

文档

訪問 PyTorch 的全面的開發者文檔

查看文檔

教程

獲取針對初學者和高級開發者的深入教程

查看教程

資源

查找開發資源並獲得答案

查看資源