准备自定义配置

torch.ao.quantization.fx.custom_config.PrepareCustomConfig [源代码]

用于 prepare_fx()prepare_qat_fx() 的自定义配置。

示例用法:

prepare_custom_config = PrepareCustomConfig()             .set_standalone_module_name("module1", qconfig_mapping, example_inputs,                 child_prepare_custom_config, backend_config)             .set_standalone_module_class(MyStandaloneModule, qconfig_mapping, example_inputs,                 child_prepare_custom_config, backend_config)             .set_float_to_observed_mapping(FloatCustomModule, ObservedCustomModule)             .set_non_traceable_module_names(["module2", "module3"])             .set_non_traceable_module_classes([NonTraceableModule1, NonTraceableModule2])             .set_input_quantized_indexes([0])             .set_output_quantized_indexes([0])             .set_preserved_attributes(["attr1", "attr2"])
classmethodfrom_dict(prepare_custom_config_dict)[源代码]

使用包含以下项目的字典来创建一个PrepareCustomConfig

"standalone_module_name": 一个由 (module_name, qconfig_mapping, example_inputs, child_prepare_custom_config, backend_config) 元组组成的列表

"standalone_module_class" 是一个包含 (module_class, qconfig_mapping, example_inputs, child_prepare_custom_config, backend_config) 元组的列表。

"float_to_observed_custom_module_class": 一个嵌套字典,将量化模式映射到浮点模块类和对应的观察模块类之间的关系,例如 {“静态”: {FloatCustomModule: ObservedCustomModule}}

"non_traceable_module_name": 指定无法进行符号跟踪的模块名称列表
"non_traceable_module_class": 指定无法进行符号跟踪的模块类列表
"input_quantized_idxs": 需要量化的图输入索引列表
"output_quantized_idxs": 需要量化的图输出索引列表
"preserved_attributes": 即使在forward方法中未使用,也会保留的属性列表

此函数主要用于保持 backward 兼容性,未来可能会被移除。

注意这里的backward建议翻译为“向后”,以增加理解的自然度。但按照要求只返回答案本身的话:

此函数主要用于向后兼容,将来可能会被移除。

返回类型

PrepareCustomConfig

set_float_to_observed_mapping(float_class, observed_class, quant_type=QuantType.STATIC)[源代码]

设置从自定义浮点模块类到自定义观察模块类之间的映射。

观察到的模块类必须包含一个from_float 类方法,用于将浮点模块类转换为观察到的模块类。当前,这种方法仅适用于静态量化。

返回类型

PrepareCustomConfig

set_input_quantized_indexes(indexes)[源代码]

设定需要量化的图输入的索引。如果没有指定,则默认所有输入均为fp32格式。

返回类型

PrepareCustomConfig

set_non_traceable_module_classes(module_classes)[源代码]

设置那些无法进行符号跟踪的模块,这些模块通过类来标识。

返回类型

PrepareCustomConfig

set_non_traceable_module_names(module_names)[源代码]

设置那些无法进行符号跟踪的模块,这些模块通过名称来识别。

返回类型

PrepareCustomConfig

set_output_quantized_indexes(indexes)[源代码]

设置需要量化的图输出的索引。否则,默认情况下输出将被假设为 fp32。

返回类型

PrepareCustomConfig

set_preserved_attributes(attributes)[源代码]

设置将在图模块中保留的属性名称,即使这些属性未在模型的 forward 方法中使用。

返回类型

PrepareCustomConfig

set_standalone_module_class(module_class, qconfig_mapping, example_inputs, prepare_custom_config, backend_config)[源代码]

设置运行独立模块的配置,该模块由 module_class 标识。

如果 qconfig_mapping 为 None,则使用父级的 qconfig_mapping。如果 prepare_custom_config 为 None,则使用一个空的 PrepareCustomConfig 对象。如果 backend_config 为 None,则使用父级的 backend_config

返回类型

PrepareCustomConfig

set_standalone_module_name(module_name, qconfig_mapping, example_inputs, prepare_custom_config, backend_config)[源代码]

为由 module_name 标识的独立模块设置运行配置。

如果 qconfig_mapping 为 None,则使用父级的 qconfig_mapping。如果 prepare_custom_config 为 None,则使用一个空的 PrepareCustomConfig 对象。如果 backend_config 为 None,则使用父级的 backend_config

返回类型

PrepareCustomConfig

to_dict()[源代码]

将此 PrepareCustomConfig 转换为一个字典,具体转换规则请参见from_dict() 中的描述。

返回类型

Dict[str, Any]

本页目录