# DeepSubmodularPeripteralNetworks


Please first make sure you've saved the dataset Imagenet 100, and extracted CLIP ViT G/14 representations. Also, perform 4 different augmentations, and save them all together with the un augmented view in a numpy array (in addition to the labels in the same directory) of shape (N, 1280, 5) where 5 is total views, 1280 is dimension, and N is 130000. We use RBF kernel instantiated using kernel width 0.3 to get the target oracle. Please have the similarity matrix ready before running the code.  in100_train_AC.pkl contains the passive EM generation generated using generate_EM.py in datasets/ 

This readme provides a way to run IN100 experiments. For other datasets, it follows similarly. 

```python 
CUDA_VISIBLE_DEVICES=1 python -m torch.distributed.run --nproc_per_node 1 --master_port 12345 main.py --nesting --n_epochs 500 --root $ROOT --dset IN100 --seed 10  --dsf_weight_decay 1e-4 --kw 0.3 --K 100 --nesting_interval 10 --beta 0.01  --scheduler cyclic  --lr_gamma 0.7 --MAX 1 --tau 20 --set_size 100 --bsz 120 --n_views 4 --lr 1e-3 --roof_consistency_loss 0.25 --nested_peripteral_loss_with_augmentation 0.25 --singleton_roof_consistency_loss 0.01 --out_dim 2048 --prop_fullGS 0.2 --submodular_feedback 0 --feedback_every 15 --feedback_coefficient 0.1 --sg_budget 5 --r_size 1000 --use_training_pair_fb --matroid_rank 1 --matroid_rank_tradeoff 0.2 --matroid_v_non_matroid --class_balanced_feedback --target_computation_bsz 40 --target_feedback --nnkmeans_feedback
```