| from pathlib import Path
|
| import os
|
|
|
| def _resolve_base() -> Path:
|
| wsl = Path("/mnt/d/SpiceNet")
|
| win = Path("D:/SpiceNet")
|
| return wsl if wsl.exists() else win
|
|
|
| _BASE = _resolve_base()
|
| DATA_DIR = _BASE / "Spice_Spectrum"
|
| DATA_DIR_SAM = _BASE / "Spice_Spectrum_SAM"
|
| OUTPUT_DIR = _BASE / "outputs"
|
| CHECKPOINT_DIR = OUTPUT_DIR / "checkpoints"
|
| LOG_DIR = OUTPUT_DIR / "logs"
|
|
|
| CLASSES = [
|
| "black pepper", "cardamom", "cinnamon", "cloves", "coriander",
|
| "cumin", "ginger", "nutmeg", "paprika", "saffron", "turmeric",
|
| ]
|
| NUM_CLASSES = len(CLASSES)
|
|
|
|
|
| HARD_NEG_PAIRS = [
|
| (4, 5),
|
| (8, 10),
|
| (0, 3),
|
| (2, 7),
|
| ]
|
|
|
|
|
| TRAIN_RATIO = 0.70
|
| VAL_RATIO = 0.10
|
| TEST_RATIO = 0.20
|
| RANDOM_SEED = 42
|
|
|
|
|
| IMG_SIZE = 224
|
| IMG_FULL = 512
|
| IMG_MEAN = (0.485, 0.456, 0.406)
|
| IMG_STD = (0.229, 0.224, 0.225)
|
|
|
|
|
| BACKBONE = "efficientnet_b4"
|
| PRETRAINED = True
|
| CNN_DIM = 1792
|
| TEX_DIM = 256
|
| COL_DIM = 128
|
| PROJ_DIM = 128
|
| DROP_RATE = 0.4
|
|
|
|
|
| LBP_P = 8
|
| LBP_R = 1
|
| GLCM_DISTANCES = [1, 2]
|
| GLCM_ANGLES_DEG = [0, 45, 90, 135]
|
| GLCM_LEVELS = 64
|
| TEX_INPUT_DIM = (LBP_P + 2) + (6 * len(GLCM_DISTANCES) * len(GLCM_ANGLES_DEG))
|
|
|
|
|
| HSV_H_BINS = 36
|
| HSV_S_BINS = 32
|
| HSV_V_BINS = 32
|
| COL_INPUT_DIM = HSV_H_BINS + HSV_S_BINS + HSV_V_BINS
|
|
|
|
|
| P1_EPOCHS = 30
|
| P1_LR = 1e-4
|
| P1_WARMUP = 3
|
| P1_WEIGHT_DECAY = 1e-4
|
| P1_LABEL_SMOOTH = 0.1
|
| P1_MIN_LR = 1e-6
|
|
|
|
|
| P2_EPOCHS = 10
|
| P2_LR = 5e-5
|
| P2_TEMPERATURE = 0.07
|
|
|
|
|
|
|
| ARCV_MIXSTYLE_P = 0.5
|
| ARCV_MIXSTYLE_ALPHA = 0.1
|
| ARCV_MIXSTYLE_STAGES = 3
|
| ARCV_FOURIER_P = 0.5
|
| ARCV_FOURIER_ETA = 1.0
|
| ARCV_FOURIER_ETA_WEAK = 0.3
|
| ARCV_GAMMA_PC = 1.0
|
| ARCV_RSC_DROP = 0.3333
|
| ARCV_GRL_LAMBDA = 1.0
|
| ARCV_CORAL_WEIGHT = 1.0
|
| ARCV_IRM_WEIGHT = 1.0
|
|
|
|
|
| P3_EPOCHS = 10
|
| P3_LR = 1e-5
|
| P3_WEIGHT_DECAY = 1e-4
|
| P3_LABEL_SMOOTH = 0.1
|
| P3_ALPHA = 0.5
|
|
|
|
|
| BATCH_SIZE = 32
|
| NUM_WORKERS = 4
|
| GRAD_CLIP = 1.0
|
| PATIENCE = 8
|
|
|
|
|
| AUG_ROTATION = 30
|
| AUG_SCALE = (0.7, 1.0)
|
| AUG_BRIGHTNESS = 0.3
|
| AUG_CONTRAST = 0.3
|
| AUG_SATURATION = 0.3
|
| AUG_HUE = 0.1
|
|
|
|
|
| USE_WANDB = False
|
| WANDB_PROJECT = "spicenet"
|
|
|