def _read_optimizer(config_data) -> Optimizer:
        optimizer_config: Dict[str, Any] = config_data['optimizer']
        optimizer_name = list(optimizer_config.keys())[0]
        assert optimizer_name in Configuration.KNOWN_OPTIMIZERS, f'Unknown optimizer: {optimizer_name}'

        if optimizer_name == 'adam':
            return Adam.from_config(optimizer_config[optimizer_name])
        elif optimizer_name == 'sgd':
            return SGD.from_config(optimizer_config[optimizer_name])