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 将覆盖旧的,同时保留正则表达式最初注册的顺序。
- 返回类型