from utils_train import OptimizerType, SchedulerType

"""CSV"""
DEFAULT_SPACING = 0.7

"""IMAGE"""
DEFAULT_IMAGE_SIZE = 224
DEFAULT_IMAGE_MEAN, DEFAULT_IMAGE_STD = [0.5006, 0.5116, 0.4869], [0.1966, 0.1951, 0.2355]

"""DATASET"""
DEFAULT_DATASET_FRAC = 1
DEFAULT_TRAIN_FRAC = 0.9
DEFAULT_VAL_FRAC = 0.05
DEFAULT_TEST_FRAC = 0.05
DEAFULT_SHUFFLE_DATASET_BEFORE_SPLITTING = False

"""LOGGING"""
LOG_EVERY_N = 100

"""MODEL"""
DEFAULT_PRETRAINED = True
DEFAULT_MODEL = "resnext101_32x8d"
DEFAULT_UNFREEZE_LAYERS_NUM = "all"

"""TRAINING"""
DEFAULT_EPOCHS = 22

"""OPTIM"""

DEFAULT_LR = 2e-5
DEFAULT_LR_FINETUNE = 2e-5
DEAFULT_NUM_WORKERS = 4
DEAFULT_DROP_LAST = True
DEFAULT_BATCH_SIZE = 8
DEFAULT_VAL_CHECK_EVERY_N_EPOCH = 1
DEFAULT_FINETUNING_EPOCH_PERIOD = 5
DEFAULT_EARLY_STOPPING_EPOCH_FREQ = 15
DEFAULT_WEIGHT_DECAY = 0
DEFAULT_SCHEDULER = SchedulerType.PLATEAU.value
DEFAULT_OPTIMIZER = OptimizerType.ADAM.value

DEFAULT_CROATIA_CRS = 3766
DEFAULT_GLOBAL_CRS = 4326
DEFAULT_COUNTRY_ISO2 = "HR"

DEFAULT_TORCHVISION_VERSION = "pytorch/vision:v0.12.0"

if __name__ == "__main__":
    pass
