BackendPatternConfig#
- class torch.ao.quantization.backend_config.BackendPatternConfig(pattern=None)[source]#
配置物件,用於為給定的運算元模式指定量化行為。詳細示例用法請參見
BackendConfig。- classmethod from_dict(backend_pattern_config_dict)[source]#
從具有以下專案的字典建立
BackendPatternConfig“pattern”: 要配置的模式 “observation_type”:
ObservationType,指定如何為此模式插入觀察器 “dtype_configs”: 一系列字典,表示DTypeConfig“root_module”: 一個torch.nn.Module,代表此模式的根 “qat_module”: 一個torch.nn.Module,代表此模式的 QAT 實現 “reference_quantized_module”: 一個torch.nn.Module,代表此模式根模組的參考量化實現 “fused_module”: 一個torch.nn.Module,代表此模式的融合實現 “fuser_method”: 一個函式,指定如何融合此模式 “pattern_complex_format”: 以反向巢狀元組格式指定的模式(已棄用)- 返回型別
- set_fuser_method(fuser_method)[source]#
設定一個函式,該函式指定如何融合此 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)[source]#
設定在圖表中如何為此模式插入觀察器。
此處,“observation type” 指的是觀察器(或量化-去量化運算元)在圖中如何放置。這用於生成後端理解的期望的參考模式。像 Linear 和 Conv 這樣的加權運算元需要不同的觀察器(或傳遞給參考模型中量化運算元的量化引數)來分別處理輸入和輸出。
有兩種觀察器型別
OUTPUT_USE_DIFFERENT_OBSERVER_AS_INPUT (預設): 輸出觀察器例項將與輸入觀察器不同。這是最常見的觀察器型別。
OUTPUT_SHARE_OBSERVER_WITH_INPUT: 輸出觀察器例項將與輸入觀察器相同。這對於像 cat 這樣的運算元很有用。
注意: 此名稱將在不久的將來重新命名,因為我們將很快插入帶有觀察器(和偽量化)的 QuantDeQuantStubs,而不是觀察器本身。
- 返回型別
- set_pattern(pattern)[source]#
設定要配置的模式。
模式可以是浮點模組、函式式運算元、pytorch 運算元,或它們的元組組合。元組模式被視為順序模式,目前僅支援 2 個或 3 個元素的元組。
- 返回型別
- set_reference_quantized_module(reference_quantized_module)[source]#
設定表示此模式根模組的參考量化實現的模組。
有關更多詳細資訊,請參閱
set_root_module()。- 返回型別