Spec-Zone.ru › PyTorch 2.14

fuse_modules

class torch.ao.quantization.fuse_modules.fuse_modules(model, modules_to_fuse, inplace=False, fuser_func=<function fuse_known_modules>, fuse_custom_config_dict=None) [исходный код]

Объединяет список модулей в один модуль.

Объединяются только следующие последовательности модулей: conv, bn conv, bn, relu conv, relu linear, relu bn, relu. Все остальные последовательности остаются без изменений. Для этих последовательностей первый элемент списка заменяется объединённым модулем, а остальные модули заменяются на identity.

Параметры:
  • model – модель, содержащая модули для объединения
  • modules_to_fuse – список списков имён модулей для объединения. Также может быть списком строк, если объединить нужно только один список модулей.
  • inplace – логическое значение, указывающее, выполняется ли объединение непосредственно в модели; по умолчанию возвращается новая модель
  • fuser_func – функция, принимающая список модулей и возвращающая список объединённых модулей той же длины. Например, fuser_func([convModule, BNModule]) возвращает список [ConvBNModule, nn.Identity()]. По умолчанию используется torch.ao.quantization.fuse_known_modules
  • fuse_custom_config_dict – пользовательская конфигурация для объединения
# Example of fuse_custom_config_dict
fuse_custom_config_dict = {
    # Additional fuser_method mapping
    "additional_fuser_method_mapping": {
        (torch.nn.Conv2d, torch.nn.BatchNorm2d): fuse_conv_bn
    },
}
Возвращает:

модель с объединёнными модулями. Если inplace=True, создаётся новая копия.

Примеры:

>>> m = M().eval()
>>> # m is a module containing the sub-modules below
>>> modules_to_fuse = [ ['conv1', 'bn1', 'relu1'], ['submodule.conv', 'submodule.relu']]
>>> fused_m = torch.ao.quantization.fuse_modules(m, modules_to_fuse)
>>> output = fused_m(input)

>>> m = M().eval()
>>> # Alternately provide a single list of modules to fuse
>>> modules_to_fuse = ['conv1', 'bn1', 'relu1']
>>> fused_m = torch.ao.quantization.fuse_modules(m, modules_to_fuse)
>>> output = fused_m(input)

© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.ao.quantization.fuse_modules.fuse_modules.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API