QConfigMapping

torch.ao.quantization.qconfig_mapping.QConfigMapping[源代码]

将模型操作映射到 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)
classmethodfrom_dict(qconfig_dict)[源代码]

使用包含以下可选键的字典来创建一个QConfigMapping

""(全局的 QConfig)

"对象类型"

"模块名称正则表达式"

"模块名"

"模块名称_对象类型_顺序"

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

返回类型

QConfigMapping

set_global(global_qconfig)[源代码]

设置全局(默认)的 QConfig。

返回类型

QConfigMapping

set_module_name(module_name, qconfig)[源代码]

为与给定模块名称匹配的模块设置QConfig。如果有已存在的模块名称已经设置了QConfig,新的QConfig将会替换旧的配置。

返回类型

QConfigMapping

set_module_name_object_type_order(module_name, object_type, index, qconfig)[源代码]

根据给定的模块名称、对象类型和模块出现的位置索引,设置相应的 QConfig。

如果已存在的(模块名称、对象类型、索引)的 QConfig 已经被设置,新的 QConfig 将会覆盖旧的配置。

返回类型

QConfigMapping

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,并且保留最初注册时正则表达式的顺序。

返回类型

QConfigMapping

set_object_type(object_type, qconfig)[源代码]

为给定的模块类型、功能或方法名称设置QConfig。如果有已存在的对象类型的QConfig已经被设置了,新的QConfig将会替换旧的QConfig。

返回类型

QConfigMapping

to_dict()[源代码]

将此 QConfigMapping 转换为包含以下键的字典:

""(全局的 QConfig)

"对象类型"

"模块名称正则表达式"

"模块名"

"模块名称_对象类型_顺序"

此字典的值是由元组组成的列表。

返回类型

Dict[str, Any]

本页目录