def _get_norm_act()

in scripts/imagenet/utils.py [0:0]


def _get_norm_act(network_config):
    if network_config["bn_mode"] == "standard":
        assert network_config["activation"] in (
            "relu",
            "leaky_relu",
            "elu",
            "identity",
        ), "Standard batch normalization is only compatible with relu, leaky_relu, elu and identity"
        activation_fn = partial(
            ABN,
            activation=network_config["activation"],
            activation_param=network_config["activation_param"],
        )
    elif network_config["bn_mode"] == "inplace":
        assert network_config["activation"] in (
            "leaky_relu",
            "elu",
            "identity",
        ), "Inplace batch normalization is only compatible with leaky_relu, elu and identity"
        activation_fn = partial(
            InPlaceABN,
            activation=network_config["activation"],
            activation_param=network_config["activation_param"],
        )
    elif network_config["bn_mode"] == "sync":
        assert network_config["activation"] in (
            "leaky_relu",
            "elu",
            "identity",
        ), "Sync batch normalization is only compatible with leaky_relu, elu and identity"
        activation_fn = partial(
            InPlaceABNSync,
            activation=network_config["activation"],
            activation_param=network_config["activation_param"],
        )
    else:
        print("Unrecognized batch normalization mode", network_config["bn_mode"])
        exit(1)

    return activation_fn