QConfigMapping#
- class torch.ao.quantization.qconfig_mapping.QConfigMapping[source]#
將模型運算元對映到
torch.ao.quantization.QConfig。使用者可以透過以下方法指定 QConfigs(優先順序從低到高):
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)[source]#
從具有以下鍵(全部可選)的字典建立
QConfigMapping:“” (用於全域性 QConfig)
“object_type”
“module_name_regex”
“module_name”
“module_name_object_type_order”
此字典的值預計為元組列表。
- 返回型別
- set_module_name(module_name, qconfig)[source]#
為匹配給定模組名稱的模組設定 QConfig。如果已為現有模組名稱設定 QConfig,則新的 QConfig 將覆蓋舊的。
- 返回型別
- set_module_name_object_type_order(module_name, object_type, index, qconfig)[source]#
為匹配給定模組名稱、物件型別以及模組出現順序的組合的模組設定 QConfig。
如果已為現有的(模組名稱、物件型別、索引)設定 QConfig,則新的 QConfig 將覆蓋舊的。
- 返回型別
- set_module_name_regex(module_name_regex, qconfig)[source]#
為匹配給定正則表示式的模組設定 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 將覆蓋舊的,同時保留正則表示式最初註冊的順序。
- 返回型別