BackendPatternConfig¶
- class torch.ao.quantization.backend_config.BackendPatternConfig(pattern=None)[原始碼][原始碼]¶
Config 物件,用於指定給定運算子模式的量化行為。有關詳細的用法範例,請參閱
BackendConfig
。- classmethod from_dict(backend_pattern_config_dict)[原始碼][原始碼]¶
從具有以下項目的字典建立
BackendPatternConfig
“pattern”: 要配置的模式 “observation_type”:
ObservationType
,指定應該如何為此模式插入觀察器 “dtype_configs”: 代表DTypeConfig
的字典列表 “root_module”: 代表此模式根的torch.nn.Module
“qat_module”: 代表此模式的 QAT 實作的torch.nn.Module
“reference_quantized_module”: 代表此模式根模組的參考量化實作的torch.nn.Module
。“fused_module”: 代表此模式的融合實作的torch.nn.Module
“fuser_method”: 指定如何融合此模式的函數 “pattern_complex_format”: 以反向巢狀元組格式指定的模式(已棄用)- 回傳類型
- set_fuser_method(fuser_method)[原始碼][原始碼]¶
設定函數,該函數指定如何融合此 BackendPatternConfig 的模式。
此函數的第一個引數應為 is_qat,其餘引數應為元組模式中的項目。此函數的回傳值應為產生的融合模組。
例如,模式 (torch.nn.Linear, torch.nn.ReLU) 的 fuser 方法可以是
- def fuse_linear_relu(is_qat, linear, relu)
return torch.ao.nn.intrinsic.LinearReLU(linear, relu)
有關更複雜的範例,請參閱 https://gist.github.com/jerryzh168/8bea7180a8ba3c279f2c9b050f2a69a6。
- 回傳類型
- set_observation_type(observation_type)[原始碼][原始碼]¶
設定應該如何在此模式的圖中插入觀察器。
此處的觀察類型是指觀察器 (或量化-反量化運算) 將如何放置在圖中。這用於產生後端理解的所需參考模式。諸如 linear 和 conv 之類的加權運算需要不同的觀察器 (或傳遞到參考模型中量化運算的量化參數) 用於輸入和輸出。
有兩種觀察類型
OUTPUT_USE_DIFFERENT_OBSERVER_AS_INPUT (預設值):輸出觀察器實例將與輸入不同。這是最常見的觀察類型。
OUTPUT_SHARE_OBSERVER_WITH_INPUT:輸出觀察器實例將與輸入相同。這對於像 cat 這樣的運算子很有用。
注意:這將在不久的將來被重新命名,因為我們很快會插入帶有觀察器(和偽量化)的 QuantDeQuantStubs,而不是直接使用觀察器本身。
- 回傳類型
- set_pattern(pattern)[原始碼][原始碼]¶
設定要配置的模式 (pattern)。
該模式可以是浮點模組、函數式運算符、pytorch 運算符,或是以上各項的元組組合。元組模式被視為連續模式,目前僅支援 2 或 3 個元素的元組。
- 回傳類型
- set_reference_quantized_module(reference_quantized_module)[原始碼][原始碼]¶
設定代表此模式的根模組的參考量化實作的模組。
有關更多詳細資訊,請參閱
set_root_module()
。- 回傳類型