QConfigMapping¶
- class torch.ao.quantization.qconfig_mapping.QConfigMapping[來源][來源]¶
從模型運算到
torch.ao.quantization.QConfig
的映射。使用者可以使用以下方法指定 QConfig(依匹配優先順序遞增排列):
set_global
:設定全域(預設)QConfigset_object_type
:為給定的模組類型、函式或方法名稱設定 QConfigset_module_name_regex
:為符合給定正則表達式的模組設定 QConfigset_module_name
:為符合給定模組名稱的模組設定 QConfigset_module_name_object_type_order
:為符合給定模組名稱、物件類型和模組出現順序組合的模組設定 QConfig使用範例
qconfig_mapping = QConfigMapping() .set_global(global_qconfig) .set_object_type(torch.nn.Linear, qconfig1) .set_object_type(torch.nn.ReLU, qconfig1) .set_module_name_regex("foo.*bar.*conv[0-9]+", qconfig1) .set_module_name_regex("foo.*", qconfig2) .set_module_name("module1", qconfig1) .set_module_name("module2", qconfig2) .set_module_name_object_type_order("foo.bar", torch.nn.functional.linear, 0, qconfig3)
- classmethod from_dict(qconfig_dict)[來源][來源]¶
從具有以下鍵(全部可選)的字典建立
QConfigMapping
“” (用於全域 QConfig)
“object_type”
“module_name_regex”
“module_name”
“module_name_object_type_order”
預期此字典的值是元組的列表。
- 回傳類型
- set_module_name(module_name, qconfig)[來源][來源]¶
為符合給定模組名稱的模組設定 QConfig。 如果已設定現有模組名稱的 QConfig,則新的 QConfig 將覆蓋舊的 QConfig。
- 回傳類型
- set_module_name_object_type_order(module_name, object_type, index, qconfig)[來源][來源]¶
為符合給定模組名稱、物件類型和模組出現順序組合的模組設定 QConfig。
如果已設定現有(模組名稱、物件類型、索引)的 QConfig,則新的 QConfig 將覆蓋舊的 QConfig。
- 回傳類型
- set_module_name_regex(module_name_regex, qconfig)[來源][來源]¶
為符合給定正則表達式的模組設定 QConfig。
正則表達式將按照通過此方法註冊的順序進行匹配。 因此,呼叫者應首先註冊更具體的模式,例如:
qconfig_mapping = QConfigMapping() .set_module_name_regex("foo.*bar.*conv[0-9]+", qconfig1) .set_module_name_regex("foo.*bar.*", qconfig2) .set_module_name_regex("foo.*", qconfig3)
在此範例中,“foo.bar.conv0”將匹配 qconfig1,“foo.bar.linear”將匹配 qconfig2,“foo.baz.relu”將匹配 qconfig3。
如果已設定現有模組名稱正則表達式的 QConfig,則新的 QConfig 將覆蓋舊的 QConfig,同時保留正則表達式最初註冊的順序。
- 回傳類型