快捷方式

模板類 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 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

讀取校準快取。

如何從校準快取中讀取,僅在使用 use_cache 設定時啟用

引數

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*,以便輕鬆分配給 CompileSpec 中的 ptq_calibrator 欄位

返回值

nvinfer1::IInt8Calibrator*

文件

查閱 PyTorch 的全面開發者文件

檢視文件

教程

獲取針對初學者和高階開發者的深度教程

檢視教程

資源

查詢開發資源並獲得問題解答

檢視資源