快捷方式

模板类 Int8Calibrator

继承关系

基类型

  • private 算法

类文档

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

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

模板参数
  • Algorithm – class 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 noexcept override

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

返回

int

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

获取下一个批次。

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

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

  • nbBindings – int - 绑定数量

返回

true - 校准器有新的批次可以消耗

返回

false - 校准器没有新的批次可以消耗

inline const void *readCalibrationCache(size_t &length) noexcept override

读取校准缓存。

如何从校准缓存中读取,仅在使用缓存时启用

参数

length

返回

const void* - 缓存数据指针

inline void writeCalibrationCache(const void *cache, size_t length) noexcept override

写入校准缓存。

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

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

  • length – size_t - 缓存长度

inline operator nvinfer1::IInt8Calibrator*()

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

将 IInt8Calibrator* 转换为 IInt8Calibrator* 的便捷函数,可轻松分配给 CompileSpec 中的 ptq_calibrator 字段

返回

nvinfer1::IInt8Calibrator*

文档

访问全面的 PyTorch 开发者文档

查看文档

教程

为初学者和高级开发者提供深入的教程

查看教程

资源

查找开发资源并让您的问题得到解答

查看资源