QConfigMapping#
- class torch.ao.quantization.qconfig_mapping.QConfigMapping[source]#
- Mapping from model ops to - torch.ao.quantization.QConfigs.- The user can specify QConfigs using the following methods (in increasing match priority): - set_global: sets the global (default) QConfig- set_object_type: sets the QConfig for a given module type, function, or method name- set_module_name_regex: sets the QConfig for modules matching the given regex string- set_module_name: sets the QConfig for modules matching the given module name- set_module_name_object_type_order: sets the QConfig for modules matching a combination of the given module name, object type, and the index at which the module appears- Example usage: - 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]#
- Create a - QConfigMappingfrom a dictionary with the following keys (all optional):- “” (for global QConfig) - “object_type” - “module_name_regex” - “module_name” - “module_name_object_type_order” - The values of this dictionary are expected to be lists of tuples. - Return type
 
 - set_module_name(module_name, qconfig)[source]#
- Set the QConfig for modules matching the given module name. If the QConfig for an existing module name was already set, the new QConfig will override the old one. - Return type
 
 - set_module_name_object_type_order(module_name, object_type, index, qconfig)[source]#
- Set the QConfig for modules matching a combination of the given module name, object type, and the index at which the module appears. - If the QConfig for an existing (module name, object type, index) was already set, the new QConfig will override the old one. - Return type
 
 - set_module_name_regex(module_name_regex, qconfig)[source]#
- Set the QConfig for modules matching the given regex string. - Regexes will be matched in the order in which they are registered through this method. Thus, the caller should register more specific patterns first, e.g.: - 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) - In this example, “foo.bar.conv0” would match qconfig1, “foo.bar.linear” would match qconfig2, and “foo.baz.relu” would match qconfig3. - If the QConfig for an existing module name regex was already set, the new QConfig will override the old one while preserving the order in which the regexes were originally registered. - Return type