def transmute_Conv3dPwBnAct()

in pytorchvideo/accelerator/deployment/mobile_cpu/transmuter/transmuter_mobile_cpu.py [0:0]


def transmute_Conv3dPwBnAct(input_module: nn.Module):
    """
    Given an input_module, transmutes it into a equivalent Conv3dPwBnAct. Returns None
    if no equivalent Conv3dPwBnAct is found, else returns an instance of equivalent
    Conv3dPwBnAct.
    Args:
        input_module (nn.Module): input module to find an equivalent Conv3dPwBnAct
    """
    if not isinstance(input_module, nn.Conv3d):
        return None
    if (
        input_module.kernel_size == (1, 1, 1)
        and input_module.groups == 1
        and input_module.stride == (1, 1, 1)
        and input_module.padding == (0, 0, 0)
        and input_module.dilation == (1, 1, 1)
    ):
        module = Conv3dPwBnAct(
            in_channels=input_module.in_channels,
            out_channels=input_module.out_channels,
            bias=False if input_module.bias is None else True,
            activation="identity",
            use_bn=False,
        )
        module.kernel.conv.load_state_dict(input_module.state_dict())
        return module
    else:
        return None