Source code for deepobs.config

# -*- coding: utf-8 -*-
FRAMEWORK = "pytorch"
BASELINE_DIR = "baselines_deepobs"
SMALL_TEST_SET = ["quadratic_deep", "mnist_vae", "fmnist_2c2d", "cifar10_3c3d"]
LARGE_TEST_SET = [
    "fmnist_vae",
    "cifar100_allcnnc",
    "svhn_wrn_164",
    "tolstoi_char_rnn",
]
DATA_SET_NAMING = {
    "two": "2D",
    "quadratic": "Quadratic",
    "mnist": "MNIST",
    "fmnist": "F-MNIST",
    "cifar10": "CIFAR-10",
    "cifar100": "CIFAR-100",
    "svhn": "SVHN",
    "imagenet": "ImageNet",
    "tolstoi": "Tolstoi",
}
TP_NAMING = {
    "d_beale": "Beale",
    "d_branin": "Branin",
    "d_rosenbrock": "Rosenbrock",
    "deep": "Deep",
    "logreg": "Log. Reg.",
    "mlp": "MLP",
    "2c2d": "2c2d",
    "3c3d": "3c3d",
    "vae": "VAE",
    "vgg_16": "VGG 16",
    "vgg_19": "VGG 19",
    "allcnnc": "All-CNN-C",
    "wrn164": "Wide ResNet 16-4",
    "wrn404": "Wide ResNet 40-4",
    "inception_v3": "Inception-v3",
    "char_rnn": "Char RNN",
}
DATA_DIR = "data_deepobs"


def get_data_dir():
    return DATA_DIR


[docs]def set_data_dir(data_dir): """Sets the data directory. Args: data_dir (str): Path to the data folder. """ global DATA_DIR DATA_DIR = data_dir
def get_framework(): return FRAMEWORK
[docs]def set_framework(framework): """Sets the current used framework. This is relevant for the higher level Tuner module of DeepOBS. Args: framework (str): Can be 'pytorch' or 'tensorflow' """ global FRAMEWORK FRAMEWORK = framework
def get_baseline_dir(): return BASELINE_DIR def set_baseline_dir(baseline_dir): global BASELINE_DIR BASELINE_DIR = baseline_dir def get_small_test_set(): return SMALL_TEST_SET def set_small_test_set(testset): global SMALL_TEST_SET SMALL_TEST_SET = testset def get_large_test_set(): return LARGE_TEST_SET def set_large_test_set(testset): global LARGE_TEST_SET LARGE_TEST_SET = testset def get_data_set_naming(): return DATA_SET_NAMING def get_tp_naming(): return TP_NAMING DEFAULT_TEST_PROBLEMS_SETTINGS = { "quadratic_deep": {"batch_size": 128, "num_epochs": 100}, "mnist_vae": {"batch_size": 64, "num_epochs": 50}, "fmnist_2c2d": {"batch_size": 128, "num_epochs": 100}, "cifar10_3c3d": {"batch_size": 128, "num_epochs": 100}, "fmnist_vae": {"batch_size": 64, "num_epochs": 100}, "cifar100_allcnnc": {"batch_size": 256, "num_epochs": 350}, "svhn_wrn164": {"batch_size": 128, "num_epochs": 160}, "tolstoi_char_rnn": {"batch_size": 50, "num_epochs": 200}, "mnist_2c2d": {"batch_size": 128, "num_epochs": 100}, "mnist_mlp": {"batch_size": 128, "num_epochs": 100}, "fmnist_mlp": {"batch_size": 128, "num_epochs": 100}, "mnist_logreg": {"batch_size": 128, "num_epochs": 50}, }
[docs]def get_testproblem_default_setting(testproblem): """Returns default settings for the ``batch_size`` and the ``num_epochs`` for ``testproblem`` (if available). Args: testproblem (str): Test problem for which to return the default setting. Returns: dict: A dictionary with the default values for ``batch_size`` and ``num_epochs`` """ try: return DEFAULT_TEST_PROBLEMS_SETTINGS[testproblem] except KeyError: raise RuntimeError( "There are no default settings for batch_size and num_epochs for testproblem " + testproblem + ". Please set num_epochs and batch_size in the run." )