評價此頁

BackendPatternConfig#

class torch.ao.quantization.backend_config.BackendPatternConfig(pattern=None)[source]#

配置物件,用於為給定的運算元模式指定量化行為。詳細示例用法請參見 BackendConfig

add_dtype_config(dtype_config)[source]#

新增一組支援的資料型別,這些資料型別作為引數傳遞給參考模型規範中的量化運算元。

返回型別

BackendPatternConfig

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”: 以反向巢狀元組格式指定的模式(已棄用)

返回型別

BackendPatternConfig

set_dtype_configs(dtype_configs)[source]#

設定支援的資料型別,這些資料型別作為引數傳遞給參考模型規範中的量化運算元,將覆蓋所有先前註冊的資料型別。

返回型別

BackendPatternConfig

set_fused_module(fused_module)[source]#

設定表示此模式的融合實現的模組。

返回型別

BackendPatternConfig

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

返回型別

BackendPatternConfig

set_observation_type(observation_type)[source]#

設定在圖表中如何為此模式插入觀察器。

此處,“observation type” 指的是觀察器(或量化-去量化運算元)在圖中如何放置。這用於生成後端理解的期望的參考模式。像 Linear 和 Conv 這樣的加權運算元需要不同的觀察器(或傳遞給參考模型中量化運算元的量化引數)來分別處理輸入和輸出。

有兩種觀察器型別

OUTPUT_USE_DIFFERENT_OBSERVER_AS_INPUT (預設): 輸出觀察器例項將與輸入觀察器不同。這是最常見的觀察器型別。

OUTPUT_SHARE_OBSERVER_WITH_INPUT: 輸出觀察器例項將與輸入觀察器相同。這對於像 cat 這樣的運算元很有用。

注意: 此名稱將在不久的將來重新命名,因為我們將很快插入帶有觀察器(和偽量化)的 QuantDeQuantStubs,而不是觀察器本身。

返回型別

BackendPatternConfig

set_pattern(pattern)[source]#

設定要配置的模式。

模式可以是浮點模組、函式式運算元、pytorch 運算元,或它們的元組組合。元組模式被視為順序模式,目前僅支援 2 個或 3 個元素的元組。

返回型別

BackendPatternConfig

set_qat_module(qat_module)[source]#

設定表示此模式的 QAT 實現的模組。

返回型別

BackendPatternConfig

set_reference_quantized_module(reference_quantized_module)[source]#

設定表示此模式根模組的參考量化實現的模組。

有關更多詳細資訊,請參閱 set_root_module()

返回型別

BackendPatternConfig

set_root_module(root_module)[source]#

設定代表此模式根模組的模組。

在轉換階段構建參考量化模型時,根模組(例如,torch.nn.Linear 對於 torch.ao.nn.intrinsic.LinearReLU)將被替換為相應的參考量化模組(例如,torch.ao.nn.reference.quantized.Linear)。這允許自定義後端指定自定義參考量化模組實現,以匹配其低階運算元的數值。由於這是一對一的對映,根模組和參考量化模組都必須在同一個 BackendPatternConfig 中指定,才能進行轉換。

返回型別

BackendPatternConfig

to_dict()[source]#

將此 BackendPatternConfig 轉換為字典,包含 from_dict() 中描述的項。

返回型別

dict[str, Any]