评价此页

QConfigMapping#

class torch.ao.quantization.qconfig_mapping.QConfigMapping[source]#

将模型算子映射到 torch.ao.quantization.QConfig

用户可以通过以下方法指定 QConfigs(优先级从低到高):

set_global :设置全局(默认)QConfig

set_object_type :为给定的模块类型、函数或方法名称设置 QConfig

set_module_name_regex :为匹配给定正则表达式的模块设置 QConfig

set_module_name :为匹配给定模块名称的模块设置 QConfig

set_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”

此字典的值预计为元组列表。

返回类型

QConfigMapping

set_global(global_qconfig)[source]#

设置全局(默认)QConfig。

返回类型

QConfigMapping

set_module_name(module_name, qconfig)[source]#

为匹配给定模块名称的模块设置 QConfig。如果已为现有模块名称设置 QConfig,则新的 QConfig 将覆盖旧的。

返回类型

QConfigMapping

set_module_name_object_type_order(module_name, object_type, index, qconfig)[source]#

为匹配给定模块名称、对象类型以及模块出现顺序的组合的模块设置 QConfig。

如果已为现有的(模块名称、对象类型、索引)设置 QConfig,则新的 QConfig 将覆盖旧的。

返回类型

QConfigMapping

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

返回类型

QConfigMapping

set_object_type(object_type, qconfig)[source]#

为给定的模块类型、函数或方法名称设置 QConfig。如果已为现有的对象类型设置 QConfig,则新的 QConfig 将覆盖旧的。

返回类型

QConfigMapping

to_dict()[source]#

将此 QConfigMapping 转换为具有以下键的字典:

“” (用于全局 QConfig)

“object_type”

“module_name_regex”

“module_name”

“module_name_object_type_order”

此字典的值为元组列表。

返回类型

dict[str, Any]