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