| --- |
| trainer: |
| class_path: eva.Trainer |
| init_args: |
| n_runs: &N_RUNS ${oc.env:N_RUNS, 5} |
| default_root_dir: &OUTPUT_ROOT ${oc.env:OUTPUT_ROOT, logs/${oc.env:MODEL_NAME, dino_vits16}/offline/bach} |
| max_steps: &MAX_STEPS ${oc.env:MAX_STEPS, 12500} |
| checkpoint_type: ${oc.env:CHECKPOINT_TYPE, best} |
| callbacks: |
| - class_path: eva.callbacks.ConfigurationLogger |
| - class_path: lightning.pytorch.callbacks.TQDMProgressBar |
| init_args: |
| refresh_rate: ${oc.env:TQDM_REFRESH_RATE, 1} |
| - class_path: lightning.pytorch.callbacks.LearningRateMonitor |
| init_args: |
| logging_interval: epoch |
| - class_path: lightning.pytorch.callbacks.ModelCheckpoint |
| init_args: |
| filename: best |
| save_last: ${oc.env:SAVE_LAST, false} |
| save_top_k: 1 |
| monitor: &MONITOR_METRIC ${oc.env:MONITOR_METRIC, val/MulticlassAccuracy} |
| mode: &MONITOR_METRIC_MODE ${oc.env:MONITOR_METRIC_MODE, max} |
| - class_path: lightning.pytorch.callbacks.EarlyStopping |
| init_args: |
| min_delta: 0 |
| patience: ${oc.env:PATIENCE, 1250} |
| monitor: *MONITOR_METRIC |
| mode: *MONITOR_METRIC_MODE |
| - class_path: eva.callbacks.ClassificationEmbeddingsWriter |
| init_args: |
| output_dir: &DATASET_EMBEDDINGS_ROOT ${oc.env:EMBEDDINGS_ROOT, ./data/embeddings}/${oc.env:MODEL_NAME, dino_vits16}/bach |
| dataloader_idx_map: |
| 0: train |
| 1: val |
| backbone: |
| class_path: eva.core.models.wrappers.ModelFromFunction |
| init_args: |
| path: torch.hub.load |
| arguments: |
| repo_or_dir: facebookresearch/dinov2 |
| model: dinov2_vits14_reg |
| pretrained: false |
| checkpoint_path: ./output_pretrained_on/eval/training_225000/teacher_checkpoint.pth |
| overwrite: true |
| logger: |
| - class_path: lightning.pytorch.loggers.TensorBoardLogger |
| init_args: |
| save_dir: *OUTPUT_ROOT |
| name: "" |
| model: |
| class_path: eva.HeadModule |
| init_args: |
| head: |
| class_path: torch.nn.Linear |
| init_args: |
| in_features: ${oc.env:IN_FEATURES, 384} |
| out_features: &NUM_CLASSES 4 |
| criterion: torch.nn.CrossEntropyLoss |
| optimizer: |
| class_path: torch.optim.AdamW |
| init_args: |
| lr: ${oc.env:LR_VALUE, 0.0003} |
| metrics: |
| common: |
| - class_path: eva.metrics.AverageLoss |
| - class_path: eva.metrics.MulticlassClassificationMetrics |
| init_args: |
| num_classes: *NUM_CLASSES |
| data: |
| class_path: eva.DataModule |
| init_args: |
| datasets: |
| train: |
| class_path: eva.datasets.EmbeddingsClassificationDataset |
| init_args: &DATASET_ARGS |
| root: *DATASET_EMBEDDINGS_ROOT |
| manifest_file: manifest.csv |
| split: train |
| val: |
| class_path: eva.datasets.EmbeddingsClassificationDataset |
| init_args: |
| <<: *DATASET_ARGS |
| split: val |
| predict: |
| - class_path: eva.vision.datasets.BACH |
| init_args: &PREDICT_DATASET_ARGS |
| root: ${oc.env:DATA_ROOT, ./data/bach} |
| split: train |
| download: ${oc.env:DOWNLOAD_DATA, false} |
| |
| |
| |
| |
| transforms: |
| class_path: eva.vision.data.transforms.common.ResizeAndCrop |
| init_args: |
| size: ${oc.env:RESIZE_DIM, 224} |
| mean: ${oc.env:NORMALIZE_MEAN, [0.485, 0.456, 0.406]} |
| std: ${oc.env:NORMALIZE_STD, [0.229, 0.224, 0.225]} |
| - class_path: eva.vision.datasets.BACH |
| init_args: |
| <<: *PREDICT_DATASET_ARGS |
| split: val |
| dataloaders: |
| train: |
| batch_size: &BATCH_SIZE ${oc.env:BATCH_SIZE, 256} |
| num_workers: &N_DATA_WORKERS ${oc.env:N_DATA_WORKERS, 4} |
| shuffle: true |
| val: |
| batch_size: *BATCH_SIZE |
| num_workers: *N_DATA_WORKERS |
| predict: |
| batch_size: &PREDICT_BATCH_SIZE ${oc.env:PREDICT_BATCH_SIZE, 64} |
| num_workers: *N_DATA_WORKERS |
|
|