Repository navigation
Expand file tree
/
Copy pathconfig.py
More file actions
62 lines (52 loc) · 2.39 KB
/
Copy pathconfig.py
File metadata and controls
62 lines (52 loc) · 2.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# config.py
# --- Dataset and Preprocessing ---
DATASET_NAME = "IndianPines"
DATA_PATH = "./"
INDIAN_PINES_URL_DATA = "http://www.ehu.eus/ccwintco/uploads/6/67/Indian_pines_corrected.mat"
INDIAN_PINES_URL_GT = "http://www.ehu.eus/ccwintco/uploads/c/c4/Indian_pines_gt.mat"
NUM_PCA_COMPONENTS = 30
PATCH_SIZE = 25 # Keep the successful 25x25
VIT_IMG_SIZE = (PATCH_SIZE, PATCH_SIZE)
TEST_RATIO = 0.70 # Keep the split that gave more training data
VAL_RATIO_FROM_TRAIN = 0.3333
RANDOM_SEED = 42
# --- HybridSN Backbone Parameters (Keep as per successful run) ---
HYBRIDSN_INPUT_BANDS = NUM_PCA_COMPONENTS
HYBRIDSN_PATCH_SIZE = PATCH_SIZE
HYBRIDSN_CONV3D_LAYERS = [
{"out_channels": 8, "kernel_size": (7, 3, 3), "padding": (0, 0, 0)},
{"out_channels": 16, "kernel_size": (5, 3, 3), "padding": (0, 0, 0)},
{"out_channels": 32, "kernel_size": (3, 3, 3), "padding": (0, 0, 0)},
]
HYBRIDSN_USE_BATCHNORM3D = False
HYBRIDSN_ACTIVATION = "relu"
HYBRIDSN_CONV2D_OUT_CHANNELS = 64
HYBRIDSN_CONV2D_KERNEL_SIZE = 3
HYBRIDSN_CONV2D_PADDING = 0
HYBRIDSN_USE_BATCHNORM2D = False
HYBRIDSN_FC_HIDDEN_UNITS = [256, 128]
HYBRIDSN_DROPOUT_RATE_FC = 0.4
# --- MODIFIED: Parameters for (now 2-Layer) MLP Auxiliary Heads ---
# For a 2-layer MLP head (Input -> Hidden -> Output), specify 1 hidden dim
HYBRIDSN_AUX_HEAD_MLP_DIMS = [128] # Single hidden layer of 128 units.
# If you want Input->Output (1 layer), use []
HYBRIDSN_AUX_HEAD_MLP_DROPOUT = 0.2
HYBRIDSN_AUX_HEAD_ACTIVATION = "relu"
# --- Parameters for Self-Attention in STUDENT Auxiliary Head Pathway (OPTIONAL) ---
# Set STUDENT_AUX_USE_SELF_ATTENTION = False if you want to remove it for this experiment
STUDENT_AUX_USE_SELF_ATTENTION = True # Or False, based on your preference from previous results
STUDENT_AUX_SA_NUM_HEADS = 4
STUDENT_AUX_SA_DROPOUT = 0.1
# --- Training Parameters ---
BATCH_SIZE = 64
EPOCHS = 100
LEARNING_RATE = 1e-3
WEIGHT_DECAY = 1e-5
# --- Loss Weights (Adjust for fewer aux heads and new MSE logit loss) ---
LAMBDA_CE_FINAL = 1.0 # Only this loss component will be active
LAMBDA_CE_AUX = 0.0 # DISABLES CE loss for all (2) shallow auxiliary heads
LAMBDA_LOGIT_MSE_DISTILL = 0.0 # DISABLES MSE logit distillation loss
# DISTILLATION_TEMP parameter is not used by the current MSE logit loss logic
LAMBDA_L2_HINT = 0.0 # DISABLES L2 Hint loss
# --- Dynamically set ---
NUM_CLASSES_ACTUAL = None