Arch: resnet50_pt
Bs trn: 128
Bs val: 128
Hidden dim: 256
Dataset: celebA
Resample class: 
Slice with: rep
Rep cluster method: gmm
Num anchor: 32
Num positive: 32
Num negative: 32
Num negative easy: 0
Weight anc by loss: False
Weight pos by loss: False
Weight neg by loss: False
Anc loss temp: 0.5
Pos loss temp: 0.5
Neg loss temp: 0.5
Data wide pos: False
Target sample ratio: 1
Balance targets: False
Additional negatives: False
Hard negative factor: 0
Full contrastive: False
Train encoder: False
No projection head: False
Projection dim: 128
Batch factor: None
Temperature: 0.05
Single pos: False
Supervised linear scale up: False
Supervised update delay: 0
Contrastive weight: 0.5
Classifier update interval: 8
Optim: sgd
Max epoch: 50
Lr: 0.001
Momentum: 0.9
Weight decay: 0.1
Weight decay c: 0.1
Stopping window: 30
Load encoder: 
Freeze encoder: False
Finetune epochs: 0
Clip grad norm: False
Lr scheduler classifier: 
Lr scheduler: 
Grad clip grad norm: False
Erm: False
Erm only: False
Pretrained spurious path: 
Max epoch s: 1
Bs trn s: 32
Lr s: 0.001
Momentum s: 0.9
Weight decay s: 0.0005
Slice temp: 10
Log loss interval: 10
Checkpoint interval: 50
Grad checkpoint interval: 50
Log visual interval: 100
Log grad visual interval: 50
Verbose: True
Seed: 0
Replicate: 0
No cuda: False
Resume: False
New slice: False
Num workers: 32
Evaluate: False
Data cmap: hsv
Test cmap: 
P correlation: 0.9
P corr by class: None
Train classes: ['blond', 'nonblond']
Train class ratios: None
Test shift: random
Flipped: False
Q: 0.7
Pretrained bmodel: False
Cosine: False
Exp: groupDRO_lr0.001_wd0.1_bs128_adj1
Group adj: 1.0
Supervised contrast: True
Prioritize spurious pos: False
Contrastive type: cnc
Compute auroc: False
Model type: resnet50_pt_cnc
Criterion: cross_entropy
Pretrained: False
Max grad norm: 1.0
Adam epsilon: 1e-08
Warmup steps: 0
Max grad norm s: 1.0
Adam epsilon s: 1e-08
Warmup steps s: 0
Grad max grad norm: 1.0
Grad adam epsilon: 1e-08
Grad warmup steps: 0
Device: cuda
Img file type: .png
Display image: False
Image path: ./images/celebA/celebA/config/contrastive_umaps
Log interval: 1
Log path: ./logs/celebA/config
Results path: ./results/celebA/config
Model path: ./model/celebA/config
Loss factor: 1
Supersample labels: False
Subsample labels: False
Weigh slice samples by loss: True
Val split: 0.2
Spurious train split: 0.2
Subsample groups: False
Train method: sc
Max robust acc: -1
Max robust epoch: -1
Max robust group acc: (None, None)
Root dir: ./datasets/data/CelebA/
Target name: Blond_Hair
Confounder names: ['Male']
Image mean: 0.449
Image std: 0.226
Augment data: False
Task: celebA
Num classes: 2
Experiment configs: config
Experiment name: cnc-celebA-sw=re-na=32-np=32-nn=32-nne=0-tsr=1-t=0.05-bf=None-cw=0.5-sud=0-me=50-bst=128-o=sgd-lr=0.001-mo=0.9-wd=0.1-wdc=0.1-spur-me=1-bst=32-lr=0.001-mo=0.9-wd=0.0005-sts=0.2-s=0-r=0
Mi resampled: None

Loading checkpoints for train split:
[-1 -1 -1 ... -1 -1 -1]
<class 'numpy.ndarray'>
[0 1 2 3] [71629 66874 22880  1387]
Loading checkpoints for val split:
[-1 -1 -1 ... -1  1 -1]
<class 'numpy.ndarray'>
[0 1 2 3] [8535 8276 2874  182]
Loading checkpoints for test split:
[-1 -1 -1 ... -1 -1  1]
<class 'numpy.ndarray'>
[0 1 2 3] [9767 7535 2480  180]
Train dataset:
    Blond_Hair = 0, Male = 0 : n = 71629
    Blond_Hair = 0, Male = 1 : n = 66874
    Blond_Hair = 1, Male = 0 : n = 22880
    Blond_Hair = 1, Male = 1 : n = 1387
Val dataset:
    Blond_Hair = 0, Male = 0 : n = 8535
    Blond_Hair = 0, Male = 1 : n = 8276
    Blond_Hair = 1, Male = 0 : n = 2874
    Blond_Hair = 1, Male = 1 : n = 182
Test dataset:
    Blond_Hair = 0, Male = 0 : n = 9767
    Blond_Hair = 0, Male = 1 : n = 7535
    Blond_Hair = 1, Male = 0 : n = 2480
    Blond_Hair = 1, Male = 1 : n = 180
Pretrained model loaded from 
Epoch:   1 | Train Loss: 0.004 | Train Acc: 86.483 | Val Loss: 0.003 | Val Acc: 83.812
Training:
Accuracies by groups:
0, 0  acc: 61179 / 71629 =  85.411
0, 1  acc: 57223 / 66874 =  85.568
1, 0  acc: 21128 / 22880 =  92.343
1, 1  acc:  1239 /  1387 =  89.329
--------------------------------------
Average acc: 140769 / 162770 =  86.483
Robust  acc: 61179 / 71629 =  85.411
--------------------------------------
Validating:
Accuracies by groups:
0, 0  acc:  6847 /  8535 =  80.223
0, 1  acc:  6985 /  8276 =  84.401
1, 0  acc:  2662 /  2874 =  92.624
1, 1  acc:   157 /   182 =  86.264
------------------------------------
Average acc: 16651 / 19867 =  83.812
Robust  acc:  6847 /  8535 =  80.223
------------------------------------
New max robust acc: 80.22261277094319
debias model - Saving best checkpoint at epoch 0
replace: True
-> Updating checkpoint debias-wga-best_seed0.pt...
Checkpoint saved at ./model/celebA/config/debias-wga-best_seed0.pt
-------------------------------------------
Avg Test Loss: 0.003 | Avg Test Acc: 85.357
Robust Acc: 81.111 | Best Acc: 91.653
-------------------------------------
Training, Epoch 0:
Accuracies by groups:
0, 0  acc:  8195 /  9767 =  83.905
0, 1  acc:  6425 /  7535 =  85.269
1, 0  acc:  2273 /  2480 =  91.653
1, 1  acc:   146 /   180 =  81.111
------------------------------------
Average acc: 17039 / 19962 =  85.357
Robust  acc:   146 /   180 =  81.111
------------------------------------
Accuracies by groups:
0, 0  acc:  8195 /  9767 =  83.905
0, 1  acc:  6425 /  7535 =  85.269
1, 0  acc:  2273 /  2480 =  91.653
1, 1  acc:   146 /   180 =  81.111
------------------------------------
Average acc: 17039 / 19962 =  85.357
Robust  acc:   146 /   180 =  81.111
------------------------------------
Testing:
Accuracies by groups:
0, 0  acc:  8195 /  9767 =  83.905
0, 1  acc:  6425 /  7535 =  85.269
1, 0  acc:  2273 /  2480 =  91.653
1, 1  acc:   146 /   180 =  81.111
------------------------------------
Average acc: 17039 / 19962 =  85.357
Robust  acc:   146 /   180 =  81.111
------------------------------------
Epoch:   2 | Train Loss: 0.004 | Train Acc: 82.894 | Val Loss: 0.005 | Val Acc: 68.591
Training:
Accuracies by groups:
0, 0  acc: 58518 / 71629 =  81.696
0, 1  acc: 54315 / 66874 =  81.220
1, 0  acc: 20880 / 22880 =  91.259
1, 1  acc:  1214 /  1387 =  87.527
--------------------------------------
Average acc: 134927 / 162770 =  82.894
Robust  acc: 54315 / 66874 =  81.220
--------------------------------------
Validating:
Accuracies by groups:
0, 0  acc:  5234 /  8535 =  61.324
0, 1  acc:  5641 /  8276 =  68.161
1, 0  acc:  2581 /  2874 =  89.805
1, 1  acc:   171 /   182 =  93.956
------------------------------------
Average acc: 13627 / 19867 =  68.591
Robust  acc:  5234 /  8535 =  61.324
------------------------------------
-------------------------------------------
Avg Test Loss: 0.004 | Avg Test Acc: 70.589
Robust Acc: 66.151 | Best Acc: 91.815
-------------------------------------
Training, Epoch 1:
Accuracies by groups:
0, 0  acc:  6461 /  9767 =  66.151
0, 1  acc:  5191 /  7535 =  68.892
1, 0  acc:  2277 /  2480 =  91.815
1, 1  acc:   162 /   180 =  90.000
------------------------------------
Average acc: 14091 / 19962 =  70.589
Robust  acc:  6461 /  9767 =  66.151
------------------------------------
Accuracies by groups:
0, 0  acc:  6461 /  9767 =  66.151
0, 1  acc:  5191 /  7535 =  68.892
1, 0  acc:  2277 /  2480 =  91.815
1, 1  acc:   162 /   180 =  90.000
------------------------------------
Average acc: 14091 / 19962 =  70.589
Robust  acc:  6461 /  9767 =  66.151
------------------------------------
Testing:
Accuracies by groups:
0, 0  acc:  6461 /  9767 =  66.151
0, 1  acc:  5191 /  7535 =  68.892
1, 0  acc:  2277 /  2480 =  91.815
1, 1  acc:   162 /   180 =  90.000
------------------------------------
Average acc: 14091 / 19962 =  70.589
Robust  acc:  6461 /  9767 =  66.151
------------------------------------
Epoch:   3 | Train Loss: 0.004 | Train Acc: 79.407 | Val Loss: 0.004 | Val Acc: 84.562
Training:
Accuracies by groups:
0, 0  acc: 56723 / 71629 =  79.190
0, 1  acc: 50622 / 66874 =  75.698
1, 0  acc: 20720 / 22880 =  90.559
1, 1  acc:  1186 /  1387 =  85.508
--------------------------------------
Average acc: 129251 / 162770 =  79.407
Robust  acc: 50622 / 66874 =  75.698
--------------------------------------
Validating:
Accuracies by groups:
0, 0  acc:  7330 /  8535 =  85.882
0, 1  acc:  6931 /  8276 =  83.748
1, 0  acc:  2395 /  2874 =  83.333
1, 1  acc:   144 /   182 =  79.121
------------------------------------
Average acc: 16800 / 19867 =  84.562
Robust  acc:   144 /   182 =  79.121
------------------------------------
-------------------------------------------
Avg Test Loss: 0.004 | Avg Test Acc: 85.653
Robust Acc: 72.778 | Best Acc: 89.045
-------------------------------------
Training, Epoch 2:
Accuracies by groups:
0, 0  acc:  8697 /  9767 =  89.045
0, 1  acc:  6264 /  7535 =  83.132
1, 0  acc:  2006 /  2480 =  80.887
1, 1  acc:   131 /   180 =  72.778
------------------------------------
Average acc: 17098 / 19962 =  85.653
Robust  acc:   131 /   180 =  72.778
------------------------------------
Accuracies by groups:
0, 0  acc:  8697 /  9767 =  89.045
0, 1  acc:  6264 /  7535 =  83.132
1, 0  acc:  2006 /  2480 =  80.887
1, 1  acc:   131 /   180 =  72.778
------------------------------------
Average acc: 17098 / 19962 =  85.653
Robust  acc:   131 /   180 =  72.778
------------------------------------
Testing:
Accuracies by groups:
0, 0  acc:  8697 /  9767 =  89.045
0, 1  acc:  6264 /  7535 =  83.132
1, 0  acc:  2006 /  2480 =  80.887
1, 1  acc:   131 /   180 =  72.778
------------------------------------
Average acc: 17098 / 19962 =  85.653
Robust  acc:   131 /   180 =  72.778
------------------------------------
Epoch:   4 | Train Loss: 0.005 | Train Acc: 78.973 | Val Loss: 0.004 | Val Acc: 80.128
Training:
Accuracies by groups:
0, 0  acc: 56567 / 71629 =  78.972
0, 1  acc: 50224 / 66874 =  75.102
1, 0  acc: 20586 / 22880 =  89.974
1, 1  acc:  1168 /  1387 =  84.211
--------------------------------------
Average acc: 128545 / 162770 =  78.973
Robust  acc: 50224 / 66874 =  75.102
--------------------------------------
Validating:
Accuracies by groups:
0, 0  acc:  6783 /  8535 =  79.473
0, 1  acc:  6494 /  8276 =  78.468
1, 0  acc:  2492 /  2874 =  86.708
1, 1  acc:   150 /   182 =  82.418
------------------------------------
Average acc: 15919 / 19867 =  80.128
Robust  acc:  6494 /  8276 =  78.468
------------------------------------
-------------------------------------------
Avg Test Loss: 0.004 | Avg Test Acc: 82.276
Robust Acc: 77.222 | Best Acc: 85.847
-------------------------------------
Training, Epoch 3:
Accuracies by groups:
0, 0  acc:  8257 /  9767 =  84.540
0, 1  acc:  5899 /  7535 =  78.288
1, 0  acc:  2129 /  2480 =  85.847
1, 1  acc:   139 /   180 =  77.222
------------------------------------
Average acc: 16424 / 19962 =  82.276
Robust  acc:   139 /   180 =  77.222
------------------------------------
Accuracies by groups:
0, 0  acc:  8257 /  9767 =  84.540
0, 1  acc:  5899 /  7535 =  78.288
1, 0  acc:  2129 /  2480 =  85.847
1, 1  acc:   139 /   180 =  77.222
------------------------------------
Average acc: 16424 / 19962 =  82.276
Robust  acc:   139 /   180 =  77.222
------------------------------------
Testing:
Accuracies by groups:
0, 0  acc:  8257 /  9767 =  84.540
0, 1  acc:  5899 /  7535 =  78.288
1, 0  acc:  2129 /  2480 =  85.847
1, 1  acc:   139 /   180 =  77.222
------------------------------------
Average acc: 16424 / 19962 =  82.276
Robust  acc:   139 /   180 =  77.222
------------------------------------
Epoch:   5 | Train Loss: 0.005 | Train Acc: 78.795 | Val Loss: 0.004 | Val Acc: 84.487
Training:
Accuracies by groups:
0, 0  acc: 56967 / 71629 =  79.531
0, 1  acc: 49884 / 66874 =  74.594
1, 0  acc: 20280 / 22880 =  88.636
1, 1  acc:  1123 /  1387 =  80.966
--------------------------------------
Average acc: 128254 / 162770 =  78.795
Robust  acc: 49884 / 66874 =  74.594
--------------------------------------
Validating:
Accuracies by groups:
0, 0  acc:  8501 /  8535 =  99.602
0, 1  acc:  8227 /  8276 =  99.408
1, 0  acc:    51 /  2874 =   1.775
1, 1  acc:     6 /   182 =   3.297
------------------------------------
Average acc: 16785 / 19867 =  84.487
Robust  acc:    51 /  2874 =   1.775
------------------------------------
-------------------------------------------
Avg Test Loss: 0.004 | Avg Test Acc: 86.650
Robust Acc: 1.667 | Best Acc: 99.601
------------------------------------
Training, Epoch 4:
Accuracies by groups:
0, 0  acc:  9728 /  9767 =  99.601
0, 1  acc:  7504 /  7535 =  99.589
1, 0  acc:    62 /  2480 =   2.500
1, 1  acc:     3 /   180 =   1.667
------------------------------------
Average acc: 17297 / 19962 =  86.650
Robust  acc:     3 /   180 =   1.667
------------------------------------
Accuracies by groups:
0, 0  acc:  9728 /  9767 =  99.601
0, 1  acc:  7504 /  7535 =  99.589
1, 0  acc:    62 /  2480 =   2.500
1, 1  acc:     3 /   180 =   1.667
------------------------------------
Average acc: 17297 / 19962 =  86.650
Robust  acc:     3 /   180 =   1.667
------------------------------------
Testing:
Accuracies by groups:
0, 0  acc:  9728 /  9767 =  99.601
0, 1  acc:  7504 /  7535 =  99.589
1, 0  acc:    62 /  2480 =   2.500
1, 1  acc:     3 /   180 =   1.667
------------------------------------
Average acc: 17297 / 19962 =  86.650
Robust  acc:     3 /   180 =   1.667
------------------------------------
Epoch:   6 | Train Loss: 0.005 | Train Acc: 79.541 | Val Loss: 0.004 | Val Acc: 83.767
Training:
Accuracies by groups:
0, 0  acc: 57567 / 71629 =  80.368
0, 1  acc: 50420 / 66874 =  75.396
1, 0  acc: 20357 / 22880 =  88.973
1, 1  acc:  1125 /  1387 =  81.110
--------------------------------------
Average acc: 129469 / 162770 =  79.541
Robust  acc: 50420 / 66874 =  75.396
--------------------------------------
Validating:
Accuracies by groups:
0, 0  acc:  7236 /  8535 =  84.780
0, 1  acc:  6746 /  8276 =  81.513
1, 0  acc:  2510 /  2874 =  87.335
1, 1  acc:   150 /   182 =  82.418
------------------------------------
Average acc: 16642 / 19867 =  83.767
Robust  acc:  6746 /  8276 =  81.513
------------------------------------
New max robust acc: 81.51280811986467
debias model - Saving best checkpoint at epoch 5
replace: True
-> Updating checkpoint debias-wga-best_seed0.pt...
Checkpoint saved at ./model/celebA/config/debias-wga-best_seed0.pt
-------------------------------------------
Avg Test Loss: 0.004 | Avg Test Acc: 84.711
Robust Acc: 78.889 | Best Acc: 87.908
-------------------------------------
Training, Epoch 5:
Accuracies by groups:
0, 0  acc:  8586 /  9767 =  87.908
0, 1  acc:  6081 /  7535 =  80.703
1, 0  acc:  2101 /  2480 =  84.718
1, 1  acc:   142 /   180 =  78.889
------------------------------------
Average acc: 16910 / 19962 =  84.711
Robust  acc:   142 /   180 =  78.889
------------------------------------
Accuracies by groups:
0, 0  acc:  8586 /  9767 =  87.908
0, 1  acc:  6081 /  7535 =  80.703
1, 0  acc:  2101 /  2480 =  84.718
1, 1  acc:   142 /   180 =  78.889
------------------------------------
Average acc: 16910 / 19962 =  84.711
Robust  acc:   142 /   180 =  78.889
------------------------------------
Testing:
Accuracies by groups:
0, 0  acc:  8586 /  9767 =  87.908
0, 1  acc:  6081 /  7535 =  80.703
1, 0  acc:  2101 /  2480 =  84.718
1, 1  acc:   142 /   180 =  78.889
------------------------------------
Average acc: 16910 / 19962 =  84.711
Robust  acc:   142 /   180 =  78.889
------------------------------------
