def get_optimizer(dataset_name):
    """
    Arguments
    ---------
        dataset_name (str): name of dataset being trained

    Returns
    -------
        optimizer (dict): parameters defining the optimizer to use during
                          training.
    """
    if "noscope" in dataset_name:
        # We use the RMSprop optimizer as found in the NoScope source:
        #    https://github.com/stanford-futuredata/noscope/blob/ffc53d415a6075258a766c01621abcc65ff71200/noscope/Models.py#L33
        # with nb_layers = 1 (that means 2 layers in the NoScope implementation) and lr_mult = 1
        return {
            "class": "torch.optim.RMSprop",
            "args": {
                "lr": (0.001 / 1.5)
            }
        }
    else:
        return {
            "class": "torch.optim.Adam",
            "args": {
                "lr": 1e-04,
                "weight_decay": 1e-05
            }
        }