from typing import Dict
from typing import Any


def get_network_config(network_name: str) -> Dict[str, Any]:
    """Get the network configuration

    Args:
        network_name (str): The name of the network to get the configuration for

    Returns:
        Dict[str, Any]: The network configuration
    """
    nn_conf = {}
    if network_name == '1x1_net':
        nn_conf['neurons_per_layer'] = [1]
        nn_conf['activations'] = ['logistic']
        nn_conf['loss_function'] = 'square_error'
        nn_conf['learning_rate'] = 5
        nn_conf['epochs'] = 5000
        nn_conf['print_every'] = 500
    elif network_name == '2x1_net':
        nn_conf['neurons_per_layer'] = [2, 1]
        nn_conf['activations'] = ['logistic', 'logistic']
        nn_conf['loss_function'] = 'square_error'
        nn_conf['learning_rate'] = 5
        nn_conf['epochs'] = 5000
        nn_conf['print_every'] = 500
    elif network_name == '2x2_net':
        nn_conf['neurons_per_layer'] = [2, 2]
        nn_conf['activations'] = ['logistic', 'logistic']
        nn_conf['loss_function'] = 'cross_entropy'
        nn_conf['learning_rate'] = 0.5
        nn_conf['epochs'] = 100
        nn_conf['print_every'] = 100
    else:
        raise ValueError(f"Network name {network_name} not recognized.")

    return nn_conf