brainscore-vision 2.2.3__py3-none-any.whl → 2.2.5__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- brainscore_vision/data/baker2022/__init__.py +10 -10
- brainscore_vision/data/baker2022/data_packaging/inverted_distortion_data_assembly.py +2 -2
- brainscore_vision/data/baker2022/data_packaging/inverted_distortion_stimulus_set.py +2 -2
- brainscore_vision/data/baker2022/data_packaging/normal_distortion_data_assembly.py +2 -2
- brainscore_vision/data/baker2022/data_packaging/normal_distortion_stimulus_set.py +2 -2
- brainscore_vision/data/barbumayo2019/__init__.py +3 -3
- brainscore_vision/data/bashivankar2019/__init__.py +10 -10
- brainscore_vision/data/bashivankar2019/data_packaging/synthetic.py +2 -2
- brainscore_vision/data/bmd2024/__init__.py +20 -20
- brainscore_vision/data/bmd2024/data_packaging/BMD_2024_data_assembly.py +2 -1
- brainscore_vision/data/bmd2024/data_packaging/BMD_2024_simulus_set.py +2 -1
- brainscore_vision/data/bracci2019/__init__.py +5 -5
- brainscore_vision/data/bracci2019/data_packaging.py +1 -1
- brainscore_vision/data/cadena2017/__init__.py +5 -5
- brainscore_vision/data/cichy2019/__init__.py +5 -5
- brainscore_vision/data/coggan2024_behavior/__init__.py +8 -8
- brainscore_vision/data/coggan2024_behavior/data_packaging.py +2 -2
- brainscore_vision/data/coggan2024_fMRI/__init__.py +5 -6
- brainscore_vision/data/coggan2024_fMRI/data_packaging.py +2 -2
- brainscore_vision/data/david2004/__init__.py +5 -5
- brainscore_vision/data/deng2009/__init__.py +3 -3
- brainscore_vision/data/ferguson2024/__init__.py +112 -112
- brainscore_vision/data/ferguson2024/data_packaging/data_packaging.py +2 -2
- brainscore_vision/data/freemanziemba2013/__init__.py +31 -30
- brainscore_vision/data/geirhos2021/__init__.py +85 -85
- brainscore_vision/data/geirhos2021/data_packaging/colour/colour_data_assembly.py +2 -2
- brainscore_vision/data/geirhos2021/data_packaging/colour/colour_stimulus_set.py +2 -2
- brainscore_vision/data/geirhos2021/data_packaging/contrast/contrast_data_assembly.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/contrast/contrast_stimulus_set.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/cue-conflict/cue-conflict_data_assembly.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/cue-conflict/cue-conflict_stimulus_set.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/edge/edge_data_assembly.py +2 -2
- brainscore_vision/data/geirhos2021/data_packaging/edge/edge_stimulus_set.py +2 -2
- brainscore_vision/data/geirhos2021/data_packaging/eidolonI/eidolonI_data_assembly.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/eidolonI/eidolonI_stimulus_set.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/eidolonII/eidolonII_data_assembly.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/eidolonII/eidolonII_stimulus_set.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/eidolonIII/eidolonIII_data_assembly.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/eidolonIII/eidolonIII_stimulus_set.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/false-colour/false-colour_data_assembly.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/false-colour/false-colour_stimulus_set.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/high-pass/high-pass_data_assembly.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/high-pass/high-pass_stimulus_set.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/low-pass/low-pass_data_assembly.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/low-pass/low-pass_stimulus_set.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/phase-scrambling/phase-scrambling_data_assembly.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/phase-scrambling/phase-scrambling_stimulus_set.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/power-equalisation/power-equalisation_data_assembly.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/power-equalisation/power-equalisation_stimulus_set.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/rotation/rotation_data_assembly.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/rotation/rotation_stimulus_set.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/silhouette/silhouette_data_assembly.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/silhouette/silhouette_stimulus_set.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/sketch/sketch_data_assembly.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/sketch/sketch_stimulus_set.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/stylized/stylized_data_assembly.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/stylized/stylized_stimulus_set.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/uniform-noise/uniform-noise_data_assembly.py +1 -1
- brainscore_vision/data/geirhos2021/data_packaging/uniform-noise/uniform-noise_stimulus_set.py +1 -1
- brainscore_vision/data/hebart2023/__init__.py +5 -5
- brainscore_vision/data/hebart2023/packaging/data_assembly.py +2 -2
- brainscore_vision/data/hebart2023/packaging/stimulus_set.py +1 -1
- brainscore_vision/data/hendrycks2019/__init__.py +12 -12
- brainscore_vision/data/igustibagus2024/__init__.py +5 -5
- brainscore_vision/data/imagenetslim15000/__init__.py +3 -3
- brainscore_vision/data/islam2021/__init__.py +3 -3
- brainscore_vision/data/kar2018/__init__.py +7 -7
- brainscore_vision/data/kar2019/__init__.py +5 -5
- brainscore_vision/data/kuzovkin2018/__init__.py +5 -5
- brainscore_vision/data/lonnqvist2024/__init__.py +12 -12
- brainscore_vision/data/lonnqvist2024/data_packaging/lonnqvist_data_assembly.py +1 -1
- brainscore_vision/data/lonnqvist2024/data_packaging/lonnqvist_stimulus_set.py +1 -1
- brainscore_vision/data/majajhong2015/__init__.py +23 -23
- brainscore_vision/data/malania2007/__init__.py +77 -77
- brainscore_vision/data/malania2007/data_packaging/malania_data_assembly.py +1 -1
- brainscore_vision/data/malania2007/data_packaging/malania_stimulus_set.py +1 -1
- brainscore_vision/data/maniquet2024/__init__.py +11 -11
- brainscore_vision/data/marques2020/__init__.py +30 -30
- brainscore_vision/data/rajalingham2018/__init__.py +10 -10
- brainscore_vision/data/rajalingham2020/__init__.py +5 -5
- brainscore_vision/data/rust2012/__init__.py +7 -7
- brainscore_vision/data/sanghavi2020/__init__.py +19 -19
- brainscore_vision/data/scialom2024/__init__.py +110 -110
- brainscore_vision/data/scialom2024/data_packaging/scialom_data_assembly.py +1 -1
- brainscore_vision/data/scialom2024/data_packaging/scialom_stimulus_set.py +1 -1
- brainscore_vision/data/seibert2019/__init__.py +2 -2
- brainscore_vision/data/zhang2018/__init__.py +5 -5
- brainscore_vision/data_helpers/s3.py +25 -6
- brainscore_vision/model_helpers/activations/pytorch.py +34 -12
- brainscore_vision/models/AT_efficientnet_b2/__init__.py +7 -0
- brainscore_vision/models/AT_efficientnet_b2/model.py +58 -0
- brainscore_vision/models/AT_efficientnet_b2/region_layer_map/AT_efficientnet-b2.json +6 -0
- brainscore_vision/models/AT_efficientnet_b2/requirements.txt +1 -0
- brainscore_vision/models/AT_efficientnet_b2/test.py +8 -0
- brainscore_vision/models/AdvProp_efficientnet_b2/__init__.py +7 -0
- brainscore_vision/models/AdvProp_efficientnet_b2/model.py +64 -0
- brainscore_vision/models/AdvProp_efficientnet_b2/region_layer_map/AdvProp_efficientnet-b2.json +1 -0
- brainscore_vision/models/AdvProp_efficientnet_b2/requirements.txt +1 -0
- brainscore_vision/models/AdvProp_efficientnet_b2/test.py +8 -0
- brainscore_vision/models/AdvProp_efficientnet_b4/__init__.py +5 -0
- brainscore_vision/models/AdvProp_efficientnet_b4/model.py +65 -0
- brainscore_vision/models/AdvProp_efficientnet_b4/region_layer_map/AdvProp_efficientnet-b4.json +1 -0
- brainscore_vision/models/AdvProp_efficientnet_b4/requirements.txt +1 -0
- brainscore_vision/models/AdvProp_efficientnet_b4/test.py +8 -0
- brainscore_vision/models/AdvProp_efficientnet_b7/__init__.py +5 -0
- brainscore_vision/models/AdvProp_efficientnet_b7/model.py +65 -0
- brainscore_vision/models/AdvProp_efficientnet_b7/region_layer_map/AdvProp_efficientnet-b7.json +1 -0
- brainscore_vision/models/AdvProp_efficientnet_b7/requirements.txt +1 -0
- brainscore_vision/models/AdvProp_efficientnet_b7/test.py +8 -0
- brainscore_vision/models/AdvProp_efficientnet_b8/__init__.py +7 -0
- brainscore_vision/models/AdvProp_efficientnet_b8/model.py +65 -0
- brainscore_vision/models/AdvProp_efficientnet_b8/region_layer_map/AdvProp_efficientnet-b8.json +1 -0
- brainscore_vision/models/AdvProp_efficientnet_b8/requirements.txt +1 -0
- brainscore_vision/models/AdvProp_efficientnet_b8/test.py +8 -0
- brainscore_vision/models/BiT_S_R101x1/__init__.py +7 -0
- brainscore_vision/models/BiT_S_R101x1/model.py +223 -0
- brainscore_vision/models/BiT_S_R101x1/region_layer_map/BiT-S-R101x1.json +1 -0
- brainscore_vision/models/BiT_S_R101x1/requirements.txt +4 -0
- brainscore_vision/models/BiT_S_R101x1/test.py +8 -0
- brainscore_vision/models/BiT_S_R101x3/__init__.py +7 -0
- brainscore_vision/models/BiT_S_R101x3/model.py +225 -0
- brainscore_vision/models/BiT_S_R101x3/region_layer_map/BiT-S-R101x3.json +1 -0
- brainscore_vision/models/BiT_S_R101x3/requirements.txt +4 -0
- brainscore_vision/models/BiT_S_R101x3/test.py +8 -0
- brainscore_vision/models/BiT_S_R152x2/__init__.py +7 -0
- brainscore_vision/models/BiT_S_R152x2/model.py +231 -0
- brainscore_vision/models/BiT_S_R152x2/region_layer_map/BiT-S-R152x2.json +1 -0
- brainscore_vision/models/BiT_S_R152x2/requirements.txt +4 -0
- brainscore_vision/models/BiT_S_R152x2/test.py +8 -0
- brainscore_vision/models/BiT_S_R152x4/__init__.py +7 -0
- brainscore_vision/models/BiT_S_R152x4/model.py +231 -0
- brainscore_vision/models/BiT_S_R152x4/region_layer_map/BiT-S-R152x4.json +1 -0
- brainscore_vision/models/BiT_S_R152x4/requirements.txt +4 -0
- brainscore_vision/models/BiT_S_R152x4/test.py +8 -0
- brainscore_vision/models/BiT_S_R50x1/__init__.py +7 -0
- brainscore_vision/models/BiT_S_R50x1/model.py +218 -0
- brainscore_vision/models/BiT_S_R50x1/region_layer_map/BiT-S-R50x1.json +1 -0
- brainscore_vision/models/BiT_S_R50x1/requirements.txt +4 -0
- brainscore_vision/models/BiT_S_R50x1/test.py +8 -0
- brainscore_vision/models/BiT_S_R50x3/__init__.py +7 -0
- brainscore_vision/models/BiT_S_R50x3/model.py +217 -0
- brainscore_vision/models/BiT_S_R50x3/region_layer_map/BiT-S-R50x3.json +1 -0
- brainscore_vision/models/BiT_S_R50x3/requirements.txt +4 -0
- brainscore_vision/models/BiT_S_R50x3/test.py +8 -0
- brainscore_vision/models/ReAlnet/__init__.py +64 -0
- brainscore_vision/models/ReAlnet/model.py +237 -0
- brainscore_vision/models/ReAlnet/requirements.txt +7 -0
- brainscore_vision/models/ReAlnet/test.py +0 -0
- brainscore_vision/models/ReAlnet/weights.json +26 -0
- brainscore_vision/models/ReAlnet_cornet/__init__.py +46 -0
- brainscore_vision/models/ReAlnet_cornet/helpers/helpers.py +215 -0
- brainscore_vision/models/ReAlnet_cornet/model.py +69 -0
- brainscore_vision/models/ReAlnet_cornet/requirements.txt +8 -0
- brainscore_vision/models/ReAlnet_cornet/test.py +0 -0
- brainscore_vision/models/Res2Net50_26w_4s/__init__.py +5 -0
- brainscore_vision/models/Res2Net50_26w_4s/helpers/resnet_helpers.py +161 -0
- brainscore_vision/models/Res2Net50_26w_4s/model.py +75 -0
- brainscore_vision/models/Res2Net50_26w_4s/region_layer_map/Res2Net50_26w_4s.json +1 -0
- brainscore_vision/models/Res2Net50_26w_4s/requirements.txt +1 -0
- brainscore_vision/models/Res2Net50_26w_4s/test.py +8 -0
- brainscore_vision/models/VOneCORnet_S/__init__.py +9 -0
- brainscore_vision/models/VOneCORnet_S/helpers/cornet_helpers.py +34 -0
- brainscore_vision/models/VOneCORnet_S/helpers/cornet_s_helpers.py +128 -0
- brainscore_vision/models/VOneCORnet_S/helpers/cornets.py +136 -0
- brainscore_vision/models/VOneCORnet_S/helpers/vonecornets.py +38 -0
- brainscore_vision/models/VOneCORnet_S/model.py +25 -0
- brainscore_vision/models/VOneCORnet_S/requirements.txt +1 -0
- brainscore_vision/models/VOneCORnet_S/test.py +8 -0
- brainscore_vision/models/alexnet_training_seed_01/__init__.py +6 -0
- brainscore_vision/models/alexnet_training_seed_01/model.py +140 -0
- brainscore_vision/models/alexnet_training_seed_01/region_layer_map/alexnet_training_seed_01.json +6 -0
- brainscore_vision/models/alexnet_training_seed_01/requirements.txt +3 -0
- brainscore_vision/models/alexnet_training_seed_01/test.py +9 -0
- brainscore_vision/models/alexnet_training_seed_02/__init__.py +6 -0
- brainscore_vision/models/alexnet_training_seed_02/model.py +140 -0
- brainscore_vision/models/alexnet_training_seed_02/region_layer_map/alexnet_training_seed_02.json +6 -0
- brainscore_vision/models/alexnet_training_seed_02/requirements.txt +3 -0
- brainscore_vision/models/alexnet_training_seed_02/test.py +9 -0
- brainscore_vision/models/alexnet_training_seed_03/__init__.py +6 -0
- brainscore_vision/models/alexnet_training_seed_03/model.py +140 -0
- brainscore_vision/models/alexnet_training_seed_03/region_layer_map/alexnet_training_seed_03.json +6 -0
- brainscore_vision/models/alexnet_training_seed_03/requirements.txt +3 -0
- brainscore_vision/models/alexnet_training_seed_03/test.py +9 -0
- brainscore_vision/models/alexnet_training_seed_04/__init__.py +6 -0
- brainscore_vision/models/alexnet_training_seed_04/model.py +140 -0
- brainscore_vision/models/alexnet_training_seed_04/region_layer_map/alexnet_training_seed_04.json +6 -0
- brainscore_vision/models/alexnet_training_seed_04/requirements.txt +3 -0
- brainscore_vision/models/alexnet_training_seed_04/test.py +9 -0
- brainscore_vision/models/alexnet_training_seed_05/__init__.py +6 -0
- brainscore_vision/models/alexnet_training_seed_05/model.py +140 -0
- brainscore_vision/models/alexnet_training_seed_05/region_layer_map/alexnet_training_seed_05.json +6 -0
- brainscore_vision/models/alexnet_training_seed_05/requirements.txt +3 -0
- brainscore_vision/models/alexnet_training_seed_05/test.py +9 -0
- brainscore_vision/models/alexnet_training_seed_06/__init__.py +6 -0
- brainscore_vision/models/alexnet_training_seed_06/model.py +140 -0
- brainscore_vision/models/alexnet_training_seed_06/region_layer_map/alexnet_training_seed_06.json +6 -0
- brainscore_vision/models/alexnet_training_seed_06/requirements.txt +3 -0
- brainscore_vision/models/alexnet_training_seed_06/test.py +9 -0
- brainscore_vision/models/alexnet_training_seed_07/__init__.py +6 -0
- brainscore_vision/models/alexnet_training_seed_07/model.py +140 -0
- brainscore_vision/models/alexnet_training_seed_07/region_layer_map/alexnet_training_seed_07.json +6 -0
- brainscore_vision/models/alexnet_training_seed_07/requirements.txt +3 -0
- brainscore_vision/models/alexnet_training_seed_07/test.py +9 -0
- brainscore_vision/models/alexnet_training_seed_08/__init__.py +6 -0
- brainscore_vision/models/alexnet_training_seed_08/model.py +140 -0
- brainscore_vision/models/alexnet_training_seed_08/region_layer_map/alexnet_training_seed_08.json +6 -0
- brainscore_vision/models/alexnet_training_seed_08/requirements.txt +3 -0
- brainscore_vision/models/alexnet_training_seed_08/test.py +9 -0
- brainscore_vision/models/alexnet_training_seed_09/__init__.py +6 -0
- brainscore_vision/models/alexnet_training_seed_09/model.py +140 -0
- brainscore_vision/models/alexnet_training_seed_09/region_layer_map/alexnet_training_seed_09.json +6 -0
- brainscore_vision/models/alexnet_training_seed_09/requirements.txt +3 -0
- brainscore_vision/models/alexnet_training_seed_09/test.py +9 -0
- brainscore_vision/models/alexnet_training_seed_10/__init__.py +6 -0
- brainscore_vision/models/alexnet_training_seed_10/model.py +140 -0
- brainscore_vision/models/alexnet_training_seed_10/region_layer_map/alexnet_training_seed_10.json +6 -0
- brainscore_vision/models/alexnet_training_seed_10/requirements.txt +3 -0
- brainscore_vision/models/alexnet_training_seed_10/test.py +9 -0
- brainscore_vision/models/antialiased-r50/__init__.py +7 -0
- brainscore_vision/models/antialiased-r50/model.py +62 -0
- brainscore_vision/models/antialiased-r50/region_layer_map/antialiased-r50.json +1 -0
- brainscore_vision/models/antialiased-r50/requirements.txt +3 -0
- brainscore_vision/models/antialiased-r50/test.py +8 -0
- brainscore_vision/models/convnext_tiny_sup/__init__.py +8 -0
- brainscore_vision/models/convnext_tiny_sup/model.py +56 -0
- brainscore_vision/models/convnext_tiny_sup/region_layer_map/convnext_tiny_sup.json +1 -0
- brainscore_vision/models/convnext_tiny_sup/requirements.txt +1 -0
- brainscore_vision/models/convnext_tiny_sup/test.py +8 -0
- brainscore_vision/models/cornet_s/model.py +2 -2
- brainscore_vision/models/custom_model_cv_18_dagger_408/model.py +2 -2
- brainscore_vision/models/densenet_121/__init__.py +7 -0
- brainscore_vision/models/densenet_121/model.py +63 -0
- brainscore_vision/models/densenet_121/region_layer_map/densenet-121.json +1 -0
- brainscore_vision/models/densenet_121/requirements.txt +1 -0
- brainscore_vision/models/densenet_121/test.py +8 -0
- brainscore_vision/models/densenet_169/__init__.py +7 -0
- brainscore_vision/models/densenet_169/model.py +63 -0
- brainscore_vision/models/densenet_169/region_layer_map/densenet-169.json +1 -0
- brainscore_vision/models/densenet_169/requirements.txt +1 -0
- brainscore_vision/models/densenet_169/test.py +9 -0
- brainscore_vision/models/{densenet_201_pytorch → densenet_201}/__init__.py +3 -3
- brainscore_vision/models/{densenet_201_pytorch → densenet_201}/model.py +12 -10
- brainscore_vision/models/densenet_201/region_layer_map/densenet-201.json +6 -0
- brainscore_vision/models/densenet_201/test.py +8 -0
- brainscore_vision/models/efficientnet_b0/__init__.py +7 -0
- brainscore_vision/models/efficientnet_b0/model.py +45 -0
- brainscore_vision/models/efficientnet_b0/region_layer_map/efficientnet_b0.json +1 -0
- brainscore_vision/models/efficientnet_b0/requirements.txt +2 -0
- brainscore_vision/models/efficientnet_b0/test.py +8 -0
- brainscore_vision/models/efficientnet_b7/__init__.py +7 -0
- brainscore_vision/models/efficientnet_b7/model.py +61 -0
- brainscore_vision/models/efficientnet_b7/region_layer_map/efficientnet-b7.json +1 -0
- brainscore_vision/models/efficientnet_b7/requirements.txt +1 -0
- brainscore_vision/models/efficientnet_b7/test.py +9 -0
- brainscore_vision/models/effnetb1_cutmix_augmix_sam_e1_5avg_424x377/model.py +2 -2
- brainscore_vision/models/effnetb1_cutmixpatch_SAM_robust32_avge6e8e9e10_manylayers_324x288/model.py +142 -142
- brainscore_vision/models/effnetb1_cutmixpatch_augmix_robust32_avge4e7_manylayers_324x288/model.py +2 -2
- brainscore_vision/models/evresnet_50_1/__init__.py +12 -0
- brainscore_vision/models/evresnet_50_1/evnet/backends.py +109 -0
- brainscore_vision/models/evresnet_50_1/evnet/evnet.py +147 -0
- brainscore_vision/models/evresnet_50_1/evnet/modules.py +308 -0
- brainscore_vision/models/evresnet_50_1/evnet/params.py +326 -0
- brainscore_vision/models/evresnet_50_1/evnet/utils.py +142 -0
- brainscore_vision/models/evresnet_50_1/model.py +62 -0
- brainscore_vision/models/evresnet_50_1/requirements.txt +5 -0
- brainscore_vision/models/evresnet_50_1/test.py +8 -0
- brainscore_vision/models/evresnet_50_4/__init__.py +12 -0
- brainscore_vision/models/evresnet_50_4/evnet/backends.py +109 -0
- brainscore_vision/models/evresnet_50_4/evnet/evnet.py +147 -0
- brainscore_vision/models/evresnet_50_4/evnet/modules.py +308 -0
- brainscore_vision/models/evresnet_50_4/evnet/params.py +326 -0
- brainscore_vision/models/evresnet_50_4/evnet/utils.py +142 -0
- brainscore_vision/models/evresnet_50_4/model.py +67 -0
- brainscore_vision/models/evresnet_50_4/requirements.txt +4 -0
- brainscore_vision/models/evresnet_50_4/test.py +8 -0
- brainscore_vision/models/evresnet_50_4_no_mapping/__init__.py +10 -0
- brainscore_vision/models/evresnet_50_4_no_mapping/evnet/backends.py +109 -0
- brainscore_vision/models/evresnet_50_4_no_mapping/evnet/evnet.py +147 -0
- brainscore_vision/models/evresnet_50_4_no_mapping/evnet/modules.py +308 -0
- brainscore_vision/models/evresnet_50_4_no_mapping/evnet/params.py +326 -0
- brainscore_vision/models/evresnet_50_4_no_mapping/evnet/utils.py +142 -0
- brainscore_vision/models/evresnet_50_4_no_mapping/model.py +67 -0
- brainscore_vision/models/evresnet_50_4_no_mapping/region_layer_map/evresnet_50_4_no_mapping.json +6 -0
- brainscore_vision/models/evresnet_50_4_no_mapping/requirements.txt +4 -0
- brainscore_vision/models/evresnet_50_4_no_mapping/test.py +8 -0
- brainscore_vision/models/grcnn/__init__.py +7 -0
- brainscore_vision/models/grcnn/helpers/helpers.py +236 -0
- brainscore_vision/models/grcnn/model.py +54 -0
- brainscore_vision/models/grcnn/region_layer_map/grcnn.json +1 -0
- brainscore_vision/models/grcnn/requirements.txt +2 -0
- brainscore_vision/models/grcnn/test.py +9 -0
- brainscore_vision/models/grcnn_109/__init__.py +5 -0
- brainscore_vision/models/grcnn_109/helpers/helpers.py +237 -0
- brainscore_vision/models/grcnn_109/model.py +53 -0
- brainscore_vision/models/grcnn_109/region_layer_map/grcnn_109.json +1 -0
- brainscore_vision/models/grcnn_109/requirements.txt +2 -0
- brainscore_vision/models/grcnn_109/test.py +9 -0
- brainscore_vision/models/hmax/model.py +2 -2
- brainscore_vision/models/imagenet_l2_3_0/__init__.py +9 -0
- brainscore_vision/models/imagenet_l2_3_0/model.py +101 -0
- brainscore_vision/models/imagenet_l2_3_0/region_layer_map/imagenet_l2_3_0.json +1 -0
- brainscore_vision/models/imagenet_l2_3_0/requirements.txt +2 -0
- brainscore_vision/models/imagenet_l2_3_0/test.py +8 -0
- brainscore_vision/models/inception_v1/__init__.py +7 -0
- brainscore_vision/models/inception_v1/model.py +67 -0
- brainscore_vision/models/inception_v1/requirements.txt +1 -0
- brainscore_vision/models/inception_v1/test.py +8 -0
- brainscore_vision/models/{inception_v3_pytorch → inception_v3}/__init__.py +3 -3
- brainscore_vision/models/{inception_v3_pytorch → inception_v3}/model.py +10 -10
- brainscore_vision/models/inception_v3/region_layer_map/inception_v3.json +6 -0
- brainscore_vision/models/inception_v3/test.py +8 -0
- brainscore_vision/models/{inception_v4_pytorch → inception_v4}/__init__.py +3 -3
- brainscore_vision/models/{inception_v4_pytorch → inception_v4}/model.py +8 -15
- brainscore_vision/models/inception_v4/region_layer_map/inception_v4.json +6 -0
- brainscore_vision/models/inception_v4/test.py +8 -0
- brainscore_vision/models/mobilenet_v2_0_5_192/__init__.py +7 -0
- brainscore_vision/models/mobilenet_v2_0_5_192/model.py +83 -0
- brainscore_vision/models/mobilenet_v2_0_5_192/region_layer_map/mobilenet_v2_0_5_192.json +6 -0
- brainscore_vision/models/mobilenet_v2_0_5_192/requirements.txt +2 -0
- brainscore_vision/models/mobilenet_v2_0_5_192/test.py +8 -0
- brainscore_vision/models/mobilenet_v2_0_5_224/__init__.py +7 -0
- brainscore_vision/models/mobilenet_v2_0_5_224/model.py +73 -0
- brainscore_vision/models/mobilenet_v2_0_5_224/region_layer_map/mobilenet_v2_0_5_224.json +6 -0
- brainscore_vision/models/mobilenet_v2_0_5_224/requirements.txt +2 -0
- brainscore_vision/models/mobilenet_v2_0_5_224/test.py +9 -0
- brainscore_vision/models/mobilenet_v2_0_75_160/__init__.py +7 -0
- brainscore_vision/models/mobilenet_v2_0_75_160/model.py +74 -0
- brainscore_vision/models/mobilenet_v2_0_75_160/region_layer_map/mobilenet_v2_0_75_160.json +6 -0
- brainscore_vision/models/mobilenet_v2_0_75_160/requirements.txt +2 -0
- brainscore_vision/models/mobilenet_v2_0_75_160/test.py +8 -0
- brainscore_vision/models/mobilenet_v2_0_75_192/__init__.py +7 -0
- brainscore_vision/models/mobilenet_v2_0_75_192/model.py +72 -0
- brainscore_vision/models/mobilenet_v2_0_75_192/region_layer_map/mobilenet_v2_0_75_192.json +6 -0
- brainscore_vision/models/mobilenet_v2_0_75_192/requirements.txt +2 -0
- brainscore_vision/models/mobilenet_v2_0_75_192/test.py +9 -0
- brainscore_vision/models/mobilenet_v2_0_75_224/__init__.py +7 -0
- brainscore_vision/models/mobilenet_v2_0_75_224/model.py +73 -0
- brainscore_vision/models/mobilenet_v2_0_75_224/region_layer_map/mobilenet_v2_0_75_224.json +6 -0
- brainscore_vision/models/mobilenet_v2_0_75_224/requirements.txt +2 -0
- brainscore_vision/models/mobilenet_v2_0_75_224/test.py +8 -0
- brainscore_vision/models/mobilenet_v2_1_0_128/__init__.py +7 -0
- brainscore_vision/models/mobilenet_v2_1_0_128/model.py +73 -0
- brainscore_vision/models/mobilenet_v2_1_0_128/region_layer_map/mobilenet_v2_1_0_128.json +6 -0
- brainscore_vision/models/mobilenet_v2_1_0_128/requirements.txt +2 -0
- brainscore_vision/models/mobilenet_v2_1_0_128/test.py +8 -0
- brainscore_vision/models/mobilenet_v2_1_0_160/__init__.py +7 -0
- brainscore_vision/models/mobilenet_v2_1_0_160/model.py +73 -0
- brainscore_vision/models/mobilenet_v2_1_0_160/region_layer_map/mobilenet_v2_1_0_160.json +6 -0
- brainscore_vision/models/mobilenet_v2_1_0_160/requirements.txt +2 -0
- brainscore_vision/models/mobilenet_v2_1_0_160/test.py +8 -0
- brainscore_vision/models/mobilenet_v2_1_0_192/__init__.py +7 -0
- brainscore_vision/models/mobilenet_v2_1_0_192/model.py +73 -0
- brainscore_vision/models/mobilenet_v2_1_0_192/region_layer_map/mobilenet_v2_1_0_192.json +6 -0
- brainscore_vision/models/mobilenet_v2_1_0_192/requirements.txt +2 -0
- brainscore_vision/models/mobilenet_v2_1_0_192/test.py +8 -0
- brainscore_vision/models/{pnasnet_large_pytorch → mobilenet_v2_1_0_224}/__init__.py +3 -3
- brainscore_vision/models/mobilenet_v2_1_0_224/model.py +60 -0
- brainscore_vision/models/mobilenet_v2_1_0_224/region_layer_map/mobilenet_v2_1_0_224.json +6 -0
- brainscore_vision/models/mobilenet_v2_1_0_224/test.py +8 -0
- brainscore_vision/models/mobilenet_v2_1_3_224/__init__.py +7 -0
- brainscore_vision/models/mobilenet_v2_1_3_224/model.py +73 -0
- brainscore_vision/models/mobilenet_v2_1_3_224/region_layer_map/mobilenet_v2_1_3_224.json +6 -0
- brainscore_vision/models/mobilenet_v2_1_3_224/requirements.txt +2 -0
- brainscore_vision/models/mobilenet_v2_1_3_224/test.py +8 -0
- brainscore_vision/models/mobilenet_v2_1_4_224/__init__.py +7 -0
- brainscore_vision/models/{mobilenet_v2_1_4_224_pytorch → mobilenet_v2_1_4_224}/model.py +3 -3
- brainscore_vision/models/mobilenet_v2_1_4_224/region_layer_map/mobilenet_v2_1_4_224.json +6 -0
- brainscore_vision/models/mobilenet_v2_1_4_224/requirements.txt +3 -0
- brainscore_vision/models/mobilenet_v2_1_4_224/test.py +8 -0
- brainscore_vision/models/nasnet_large/__init__.py +7 -0
- brainscore_vision/models/nasnet_large/model.py +60 -0
- brainscore_vision/models/nasnet_large/region_layer_map/nasnet_large.json +6 -0
- brainscore_vision/models/nasnet_large/test.py +8 -0
- brainscore_vision/models/nasnet_mobile/__init__.py +7 -0
- brainscore_vision/models/nasnet_mobile/model.py +685 -0
- brainscore_vision/models/nasnet_mobile/region_layer_map/nasnet_mobile.json +6 -0
- brainscore_vision/models/nasnet_mobile/requirements.txt +1 -0
- brainscore_vision/models/nasnet_mobile/test.py +8 -0
- brainscore_vision/models/omnivore_swinB/__init__.py +7 -0
- brainscore_vision/models/omnivore_swinB/model.py +79 -0
- brainscore_vision/models/omnivore_swinB/region_layer_map/omnivore_swinB.json +1 -0
- brainscore_vision/models/omnivore_swinB/requirements.txt +5 -0
- brainscore_vision/models/omnivore_swinB/test.py +9 -0
- brainscore_vision/models/omnivore_swinS/__init__.py +7 -0
- brainscore_vision/models/omnivore_swinS/model.py +79 -0
- brainscore_vision/models/omnivore_swinS/region_layer_map/omnivore_swinS.json +1 -0
- brainscore_vision/models/omnivore_swinS/requirements.txt +7 -0
- brainscore_vision/models/omnivore_swinS/test.py +9 -0
- brainscore_vision/models/pnasnet_large/__init__.py +7 -0
- brainscore_vision/models/{pnasnet_large_pytorch → pnasnet_large}/model.py +6 -10
- brainscore_vision/models/pnasnet_large/region_layer_map/pnasnet_large.json +6 -0
- brainscore_vision/models/pnasnet_large/requirements.txt +3 -0
- brainscore_vision/models/pnasnet_large/test.py +8 -0
- brainscore_vision/models/resnet50_SIN/__init__.py +7 -0
- brainscore_vision/models/resnet50_SIN/model.py +63 -0
- brainscore_vision/models/resnet50_SIN/region_layer_map/resnet50-SIN.json +6 -0
- brainscore_vision/models/resnet50_SIN/requirements.txt +1 -0
- brainscore_vision/models/resnet50_SIN/test.py +9 -0
- brainscore_vision/models/resnet50_SIN_IN/__init__.py +7 -0
- brainscore_vision/models/resnet50_SIN_IN/model.py +65 -0
- brainscore_vision/models/resnet50_SIN_IN/region_layer_map/resnet50-SIN_IN.json +6 -0
- brainscore_vision/models/resnet50_SIN_IN/requirements.txt +2 -0
- brainscore_vision/models/resnet50_SIN_IN/test.py +9 -0
- brainscore_vision/models/resnet50_SIN_IN_IN/__init__.py +7 -0
- brainscore_vision/models/resnet50_SIN_IN_IN/model.py +65 -0
- brainscore_vision/models/resnet50_SIN_IN_IN/region_layer_map/resnet50-SIN_IN_IN.json +6 -0
- brainscore_vision/models/resnet50_SIN_IN_IN/requirements.txt +2 -0
- brainscore_vision/models/resnet50_SIN_IN_IN/test.py +9 -0
- brainscore_vision/models/resnet50_VITO_8deg_cc/__init__.py +9 -0
- brainscore_vision/models/resnet50_VITO_8deg_cc/helpers/resnet.py +1061 -0
- brainscore_vision/models/resnet50_VITO_8deg_cc/helpers/spatialattn.py +50 -0
- brainscore_vision/models/resnet50_VITO_8deg_cc/model.py +72 -0
- brainscore_vision/models/resnet50_VITO_8deg_cc/region_layer_map/resnet50-VITO-8deg-cc.json +6 -0
- brainscore_vision/models/resnet50_VITO_8deg_cc/requirements.txt +3 -0
- brainscore_vision/models/resnet50_VITO_8deg_cc/test.py +8 -0
- brainscore_vision/models/resnet50_barlow/__init__.py +7 -0
- brainscore_vision/models/resnet50_barlow/model.py +53 -0
- brainscore_vision/models/resnet50_barlow/region_layer_map/resnet50-barlow.json +1 -0
- brainscore_vision/models/resnet50_barlow/requirements.txt +1 -0
- brainscore_vision/models/resnet50_barlow/test.py +9 -0
- brainscore_vision/models/resnet50_finetune_cutmix_AVGe2e3_robust_linf8255_e0_247x234/__init__.py +6 -0
- brainscore_vision/models/resnet50_finetune_cutmix_AVGe2e3_robust_linf8255_e0_247x234/model.py +128 -0
- brainscore_vision/models/resnet50_finetune_cutmix_AVGe2e3_robust_linf8255_e0_247x234/region_layer_map/resnet50_finetune_cutmix_AVGe2e3_robust_linf8255_e0_247x234.json +1 -0
- brainscore_vision/models/resnet50_finetune_cutmix_AVGe2e3_robust_linf8255_e0_247x234/requirements.txt +5 -0
- brainscore_vision/models/resnet50_finetune_cutmix_AVGe2e3_robust_linf8255_e0_247x234/test.py +7 -0
- brainscore_vision/models/resnet50_moclr8deg/__init__.py +11 -0
- brainscore_vision/models/resnet50_moclr8deg/helpers/helpers.py +496 -0
- brainscore_vision/models/resnet50_moclr8deg/model.py +45 -0
- brainscore_vision/models/resnet50_moclr8deg/region_layer_map/resnet50-moclr8deg.json +6 -0
- brainscore_vision/models/resnet50_moclr8deg/requirements.txt +3 -0
- brainscore_vision/models/resnet50_moclr8deg/test.py +8 -0
- brainscore_vision/models/resnet50_robust_l2_eps1/__init__.py +9 -0
- brainscore_vision/models/resnet50_robust_l2_eps1/model.py +72 -0
- brainscore_vision/models/resnet50_robust_l2_eps1/region_layer_map/resnet50_robust_l2_eps1.json +1 -0
- brainscore_vision/models/resnet50_robust_l2_eps1/requirements.txt +2 -0
- brainscore_vision/models/resnet50_robust_l2_eps1/test.py +8 -0
- brainscore_vision/models/resnet50_robust_l2_eps3/__init__.py +8 -0
- brainscore_vision/models/resnet50_robust_l2_eps3/model.py +72 -0
- brainscore_vision/models/resnet50_robust_l2_eps3/region_layer_map/resnet50_robust_l2_eps3.json +1 -0
- brainscore_vision/models/resnet50_robust_l2_eps3/requirements.txt +2 -0
- brainscore_vision/models/resnet50_robust_l2_eps3/test.py +8 -0
- brainscore_vision/models/resnet50_sup/__init__.py +5 -0
- brainscore_vision/models/resnet50_sup/model.py +55 -0
- brainscore_vision/models/resnet50_sup/region_layer_map/resnet50-sup.json +1 -0
- brainscore_vision/models/resnet50_sup/requirements.txt +1 -0
- brainscore_vision/models/resnet50_sup/test.py +8 -0
- brainscore_vision/models/resnet50_vicreg/__init__.py +7 -0
- brainscore_vision/models/resnet50_vicreg/model.py +62 -0
- brainscore_vision/models/resnet50_vicreg/region_layer_map/resnet50-vicreg.json +1 -0
- brainscore_vision/models/resnet50_vicreg/requirements.txt +1 -0
- brainscore_vision/models/resnet50_vicreg/test.py +9 -0
- brainscore_vision/models/resnet50_vicregl0p75/__init__.py +5 -0
- brainscore_vision/models/resnet50_vicregl0p75/model.py +80 -0
- brainscore_vision/models/resnet50_vicregl0p75/region_layer_map/resnet50-vicregl0p75.json +1 -0
- brainscore_vision/models/resnet50_vicregl0p75/test.py +9 -0
- brainscore_vision/models/resnet50_vicregl0p9/__init__.py +5 -0
- brainscore_vision/models/resnet50_vicregl0p9/model.py +85 -0
- brainscore_vision/models/resnet50_vicregl0p9/region_layer_map/resnet50-vicregl0p9.json +1 -0
- brainscore_vision/models/resnet50_vicregl0p9/requirements.txt +3 -0
- brainscore_vision/models/resnet50_vicregl0p9/test.py +9 -0
- brainscore_vision/models/resnet50_vitoimagevidnet8/__init__.py +11 -0
- brainscore_vision/models/resnet50_vitoimagevidnet8/helpers/helpers.py +496 -0
- brainscore_vision/models/resnet50_vitoimagevidnet8/model.py +45 -0
- brainscore_vision/models/resnet50_vitoimagevidnet8/region_layer_map/resnet50-vitoimagevidnet8.json +6 -0
- brainscore_vision/models/resnet50_vitoimagevidnet8/requirements.txt +3 -0
- brainscore_vision/models/resnet50_vitoimagevidnet8/test.py +8 -0
- brainscore_vision/models/resnet_101_v1/__init__.py +5 -0
- brainscore_vision/models/resnet_101_v1/model.py +42 -0
- brainscore_vision/models/resnet_101_v1/region_layer_map/resnet_101_v1.json +6 -0
- brainscore_vision/models/resnet_101_v1/requirements.txt +1 -0
- brainscore_vision/models/resnet_101_v1/test.py +8 -0
- brainscore_vision/models/resnet_101_v2/__init__.py +8 -0
- brainscore_vision/models/resnet_101_v2/model.py +33 -0
- brainscore_vision/models/resnet_101_v2/region_layer_map/resnet_101_v2.json +6 -0
- brainscore_vision/models/resnet_101_v2/requirements.txt +2 -0
- brainscore_vision/models/resnet_101_v2/test.py +8 -0
- brainscore_vision/models/resnet_152_v1/__init__.py +5 -0
- brainscore_vision/models/resnet_152_v1/model.py +42 -0
- brainscore_vision/models/resnet_152_v1/region_layer_map/resnet_152_v1.json +6 -0
- brainscore_vision/models/resnet_152_v1/requirements.txt +1 -0
- brainscore_vision/models/resnet_152_v1/test.py +8 -0
- brainscore_vision/models/resnet_152_v2/__init__.py +7 -0
- brainscore_vision/models/{resnet_152_v2_pytorch → resnet_152_v2}/model.py +9 -11
- brainscore_vision/models/resnet_152_v2/region_layer_map/resnet_152_v2.json +6 -0
- brainscore_vision/models/resnet_152_v2/requirements.txt +2 -0
- brainscore_vision/models/resnet_152_v2/test.py +8 -0
- brainscore_vision/models/resnet_18_test_m/__init__.py +9 -0
- brainscore_vision/models/resnet_18_test_m/helpers/resnet.py +586 -0
- brainscore_vision/models/resnet_18_test_m/model.py +80 -0
- brainscore_vision/models/resnet_18_test_m/region_layer_map/resnet-18_test_m.json +1 -0
- brainscore_vision/models/resnet_18_test_m/requirements.txt +2 -0
- brainscore_vision/models/resnet_18_test_m/test.py +8 -0
- brainscore_vision/models/resnet_50_2/__init__.py +9 -0
- brainscore_vision/models/resnet_50_2/evnet/backends.py +109 -0
- brainscore_vision/models/resnet_50_2/evnet/evnet.py +147 -0
- brainscore_vision/models/resnet_50_2/evnet/modules.py +308 -0
- brainscore_vision/models/resnet_50_2/evnet/params.py +326 -0
- brainscore_vision/models/resnet_50_2/evnet/utils.py +142 -0
- brainscore_vision/models/resnet_50_2/model.py +46 -0
- brainscore_vision/models/resnet_50_2/region_layer_map/resnet_50_2.json +6 -0
- brainscore_vision/models/resnet_50_2/requirements.txt +4 -0
- brainscore_vision/models/resnet_50_2/test.py +8 -0
- brainscore_vision/models/resnet_50_robust/model.py +2 -2
- brainscore_vision/models/resnet_50_robust/region_layer_map/resnet-50-robust.json +1 -0
- brainscore_vision/models/resnet_50_v1/__init__.py +5 -0
- brainscore_vision/models/resnet_50_v1/model.py +42 -0
- brainscore_vision/models/resnet_50_v1/region_layer_map/resnet_50_v1.json +6 -0
- brainscore_vision/models/resnet_50_v1/requirements.txt +1 -0
- brainscore_vision/models/resnet_50_v1/test.py +8 -0
- brainscore_vision/models/resnet_50_v2/__init__.py +8 -0
- brainscore_vision/models/resnet_50_v2/model.py +33 -0
- brainscore_vision/models/resnet_50_v2/region_layer_map/resnet_50_v2.json +6 -0
- brainscore_vision/models/resnet_50_v2/requirements.txt +2 -0
- brainscore_vision/models/resnet_50_v2/test.py +8 -0
- brainscore_vision/models/resnet_SIN_IN_FT_IN/__init__.py +5 -0
- brainscore_vision/models/resnet_SIN_IN_FT_IN/model.py +79 -0
- brainscore_vision/models/resnet_SIN_IN_FT_IN/region_layer_map/resnet_SIN_IN_FT_IN.json +1 -0
- brainscore_vision/models/resnet_SIN_IN_FT_IN/requirements.txt +2 -0
- brainscore_vision/models/resnet_SIN_IN_FT_IN/test.py +8 -0
- brainscore_vision/models/sBarlow_lmda_0/__init__.py +9 -0
- brainscore_vision/models/sBarlow_lmda_0/model.py +64 -0
- brainscore_vision/models/sBarlow_lmda_0/region_layer_map/sBarlow_lmda_0.json +6 -0
- brainscore_vision/models/sBarlow_lmda_0/setup.py +25 -0
- brainscore_vision/models/sBarlow_lmda_0/test.py +1 -0
- brainscore_vision/models/sBarlow_lmda_01/__init__.py +9 -0
- brainscore_vision/models/sBarlow_lmda_01/model.py +64 -0
- brainscore_vision/models/sBarlow_lmda_01/region_layer_map/sBarlow_lmda_01.json +6 -0
- brainscore_vision/models/sBarlow_lmda_01/setup.py +25 -0
- brainscore_vision/models/sBarlow_lmda_01/test.py +1 -0
- brainscore_vision/models/sBarlow_lmda_1/__init__.py +9 -0
- brainscore_vision/models/sBarlow_lmda_1/model.py +64 -0
- brainscore_vision/models/sBarlow_lmda_1/region_layer_map/sBarlow_lmda_1.json +6 -0
- brainscore_vision/models/sBarlow_lmda_1/setup.py +25 -0
- brainscore_vision/models/sBarlow_lmda_1/test.py +1 -0
- brainscore_vision/models/sBarlow_lmda_2/__init__.py +9 -0
- brainscore_vision/models/sBarlow_lmda_2/model.py +64 -0
- brainscore_vision/models/sBarlow_lmda_2/region_layer_map/sBarlow_lmda_2.json +6 -0
- brainscore_vision/models/sBarlow_lmda_2/setup.py +25 -0
- brainscore_vision/models/sBarlow_lmda_2/test.py +1 -0
- brainscore_vision/models/sBarlow_lmda_8/__init__.py +9 -0
- brainscore_vision/models/sBarlow_lmda_8/model.py +64 -0
- brainscore_vision/models/sBarlow_lmda_8/region_layer_map/sBarlow_lmda_8.json +6 -0
- brainscore_vision/models/sBarlow_lmda_8/setup.py +25 -0
- brainscore_vision/models/sBarlow_lmda_8/test.py +1 -0
- brainscore_vision/models/scsBarlow_lmda_1/__init__.py +9 -0
- brainscore_vision/models/scsBarlow_lmda_1/model.py +64 -0
- brainscore_vision/models/scsBarlow_lmda_1/region_layer_map/scsBarlow_lmda_1.json +6 -0
- brainscore_vision/models/scsBarlow_lmda_1/setup.py +25 -0
- brainscore_vision/models/scsBarlow_lmda_1/test.py +1 -0
- brainscore_vision/models/scsBarlow_lmda_2/__init__.py +9 -0
- brainscore_vision/models/scsBarlow_lmda_2/model.py +64 -0
- brainscore_vision/models/scsBarlow_lmda_2/region_layer_map/scsBarlow_lmda_2.json +6 -0
- brainscore_vision/models/scsBarlow_lmda_2/setup.py +25 -0
- brainscore_vision/models/scsBarlow_lmda_2/test.py +1 -0
- brainscore_vision/models/scsBarlow_lmda_4/__init__.py +9 -0
- brainscore_vision/models/scsBarlow_lmda_4/model.py +64 -0
- brainscore_vision/models/scsBarlow_lmda_4/region_layer_map/scsBarlow_lmda_4.json +6 -0
- brainscore_vision/models/scsBarlow_lmda_4/setup.py +25 -0
- brainscore_vision/models/scsBarlow_lmda_4/test.py +1 -0
- brainscore_vision/models/shufflenet_v2_x1_0/__init__.py +7 -0
- brainscore_vision/models/shufflenet_v2_x1_0/model.py +52 -0
- brainscore_vision/models/shufflenet_v2_x1_0/region_layer_map/shufflenet_v2_x1_0.json +1 -0
- brainscore_vision/models/shufflenet_v2_x1_0/requirements.txt +2 -0
- brainscore_vision/models/shufflenet_v2_x1_0/test.py +9 -0
- brainscore_vision/models/timm_models/__init__.py +193 -0
- brainscore_vision/models/timm_models/model.py +90 -0
- brainscore_vision/models/timm_models/model_configs.json +464 -0
- brainscore_vision/models/timm_models/requirements.txt +3 -0
- brainscore_vision/models/timm_models/test.py +0 -0
- brainscore_vision/models/vgg_16/__init__.py +7 -0
- brainscore_vision/models/vgg_16/model.py +52 -0
- brainscore_vision/models/vgg_16/region_layer_map/vgg_16.json +6 -0
- brainscore_vision/models/vgg_16/requirements.txt +1 -0
- brainscore_vision/models/vgg_16/test.py +8 -0
- brainscore_vision/models/vgg_19/__init__.py +7 -0
- brainscore_vision/models/vgg_19/model.py +52 -0
- brainscore_vision/models/vgg_19/region_layer_map/vgg_19.json +1 -0
- brainscore_vision/models/vgg_19/requirements.txt +1 -0
- brainscore_vision/models/vgg_19/test.py +8 -0
- brainscore_vision/models/vonegrcnn_47e/__init__.py +5 -0
- brainscore_vision/models/vonegrcnn_47e/model.py +622 -0
- brainscore_vision/models/vonegrcnn_47e/region_layer_map/vonegrcnn_47e.json +6 -0
- brainscore_vision/models/vonegrcnn_47e/requirements.txt +0 -0
- brainscore_vision/models/vonegrcnn_47e/test.py +8 -0
- brainscore_vision/models/vonegrcnn_52e_full/__init__.py +5 -0
- brainscore_vision/models/vonegrcnn_52e_full/model.py +623 -0
- brainscore_vision/models/vonegrcnn_52e_full/region_layer_map/vonegrcnn_52e_full.json +6 -0
- brainscore_vision/models/vonegrcnn_52e_full/requirements.txt +4 -0
- brainscore_vision/models/vonegrcnn_52e_full/test.py +8 -0
- brainscore_vision/models/vonegrcnn_62e_nobn/__init__.py +7 -0
- brainscore_vision/models/vonegrcnn_62e_nobn/helpers/vongrcnn_helpers.py +544 -0
- brainscore_vision/models/vonegrcnn_62e_nobn/model.py +122 -0
- brainscore_vision/models/vonegrcnn_62e_nobn/region_layer_map/vonegrcnn_62e_nobn.json +6 -0
- brainscore_vision/models/vonegrcnn_62e_nobn/requirements.txt +3 -0
- brainscore_vision/models/vonegrcnn_62e_nobn/test.py +8 -0
- brainscore_vision/models/voneresnet_50/__init__.py +7 -0
- brainscore_vision/models/voneresnet_50/model.py +37 -0
- brainscore_vision/models/voneresnet_50/region_layer_map/voneresnet-50.json +6 -0
- brainscore_vision/models/voneresnet_50/requirements.txt +1 -0
- brainscore_vision/models/voneresnet_50/test.py +8 -0
- brainscore_vision/models/voneresnet_50_1/__init__.py +11 -0
- brainscore_vision/models/voneresnet_50_1/evnet/backends.py +109 -0
- brainscore_vision/models/voneresnet_50_1/evnet/evnet.py +147 -0
- brainscore_vision/models/voneresnet_50_1/evnet/modules.py +308 -0
- brainscore_vision/models/voneresnet_50_1/evnet/params.py +326 -0
- brainscore_vision/models/voneresnet_50_1/evnet/utils.py +142 -0
- brainscore_vision/models/voneresnet_50_1/model.py +68 -0
- brainscore_vision/models/voneresnet_50_1/requirements.txt +5 -0
- brainscore_vision/models/voneresnet_50_1/test.py +7 -0
- brainscore_vision/models/voneresnet_50_3/__init__.py +11 -0
- brainscore_vision/models/voneresnet_50_3/evnet/backends.py +109 -0
- brainscore_vision/models/voneresnet_50_3/evnet/evnet.py +147 -0
- brainscore_vision/models/voneresnet_50_3/evnet/modules.py +308 -0
- brainscore_vision/models/voneresnet_50_3/evnet/params.py +326 -0
- brainscore_vision/models/voneresnet_50_3/evnet/utils.py +142 -0
- brainscore_vision/models/voneresnet_50_3/model.py +66 -0
- brainscore_vision/models/voneresnet_50_3/requirements.txt +4 -0
- brainscore_vision/models/voneresnet_50_3/test.py +7 -0
- brainscore_vision/models/voneresnet_50_no_weight/__init__.py +11 -0
- brainscore_vision/models/voneresnet_50_no_weight/evnet/backends.py +109 -0
- brainscore_vision/models/voneresnet_50_no_weight/evnet/evnet.py +147 -0
- brainscore_vision/models/voneresnet_50_no_weight/evnet/modules.py +308 -0
- brainscore_vision/models/voneresnet_50_no_weight/evnet/params.py +326 -0
- brainscore_vision/models/voneresnet_50_no_weight/evnet/utils.py +142 -0
- brainscore_vision/models/voneresnet_50_no_weight/model.py +56 -0
- brainscore_vision/models/voneresnet_50_no_weight/requirements.txt +4 -0
- brainscore_vision/models/voneresnet_50_no_weight/test.py +7 -0
- brainscore_vision/models/voneresnet_50_non_stochastic/model.py +2 -2
- brainscore_vision/models/voneresnet_50_robust/__init__.py +7 -0
- brainscore_vision/models/voneresnet_50_robust/model.py +50 -0
- brainscore_vision/models/voneresnet_50_robust/region_layer_map/voneresnet-50-robust.json +6 -0
- brainscore_vision/models/voneresnet_50_robust/requirements.txt +1 -0
- brainscore_vision/models/voneresnet_50_robust/test.py +8 -0
- brainscore_vision/models/xception/__init__.py +7 -0
- brainscore_vision/models/xception/model.py +64 -0
- brainscore_vision/models/xception/region_layer_map/xception.json +6 -0
- brainscore_vision/models/xception/requirements.txt +2 -0
- brainscore_vision/models/xception/test.py +8 -0
- brainscore_vision/models/yudixie_resnet50_250117_0/__init__.py +11 -0
- brainscore_vision/models/yudixie_resnet50_250117_0/model.py +60 -0
- brainscore_vision/models/yudixie_resnet50_250117_0/region_layer_map/yudixie_resnet50_distance_reg_0_240908.json +6 -0
- brainscore_vision/models/yudixie_resnet50_250117_0/setup.py +25 -0
- brainscore_vision/models/yudixie_resnet50_250117_0/test.py +1 -0
- brainscore_vision/models/yudixie_resnet50_250117_1/__init__.py +11 -0
- brainscore_vision/models/yudixie_resnet50_250117_1/model.py +60 -0
- brainscore_vision/models/yudixie_resnet50_250117_1/region_layer_map/yudixie_resnet50_translation_reg_0_240908.json +6 -0
- brainscore_vision/models/yudixie_resnet50_250117_1/setup.py +25 -0
- brainscore_vision/models/yudixie_resnet50_250117_1/test.py +1 -0
- brainscore_vision/models/yudixie_resnet50_250117_10/__init__.py +11 -0
- brainscore_vision/models/yudixie_resnet50_250117_10/model.py +60 -0
- brainscore_vision/models/yudixie_resnet50_250117_10/region_layer_map/yudixie_resnet50_imagenet1kpret_0_240908.json +6 -0
- brainscore_vision/models/yudixie_resnet50_250117_10/setup.py +25 -0
- brainscore_vision/models/yudixie_resnet50_250117_10/test.py +1 -0
- brainscore_vision/models/yudixie_resnet50_250117_11/__init__.py +11 -0
- brainscore_vision/models/yudixie_resnet50_250117_11/model.py +60 -0
- brainscore_vision/models/yudixie_resnet50_250117_11/region_layer_map/yudixie_resnet50_random_0_240908.json +6 -0
- brainscore_vision/models/yudixie_resnet50_250117_11/setup.py +25 -0
- brainscore_vision/models/yudixie_resnet50_250117_11/test.py +1 -0
- brainscore_vision/models/yudixie_resnet50_250117_2/__init__.py +11 -0
- brainscore_vision/models/yudixie_resnet50_250117_2/model.py +60 -0
- brainscore_vision/models/yudixie_resnet50_250117_2/region_layer_map/yudixie_resnet50_rotation_reg_0_240908.json +6 -0
- brainscore_vision/models/yudixie_resnet50_250117_2/setup.py +25 -0
- brainscore_vision/models/yudixie_resnet50_250117_2/test.py +1 -0
- brainscore_vision/models/yudixie_resnet50_250117_3/__init__.py +11 -0
- brainscore_vision/models/yudixie_resnet50_250117_3/model.py +60 -0
- brainscore_vision/models/yudixie_resnet50_250117_3/region_layer_map/yudixie_resnet50_distance_translation_0_240908.json +6 -0
- brainscore_vision/models/yudixie_resnet50_250117_3/setup.py +25 -0
- brainscore_vision/models/yudixie_resnet50_250117_3/test.py +1 -0
- brainscore_vision/models/yudixie_resnet50_250117_4/__init__.py +11 -0
- brainscore_vision/models/yudixie_resnet50_250117_4/model.py +60 -0
- brainscore_vision/models/yudixie_resnet50_250117_4/region_layer_map/yudixie_resnet50_distance_rotation_0_240908.json +6 -0
- brainscore_vision/models/yudixie_resnet50_250117_4/setup.py +25 -0
- brainscore_vision/models/yudixie_resnet50_250117_4/test.py +1 -0
- brainscore_vision/models/yudixie_resnet50_250117_5/__init__.py +11 -0
- brainscore_vision/models/yudixie_resnet50_250117_5/model.py +60 -0
- brainscore_vision/models/yudixie_resnet50_250117_5/region_layer_map/yudixie_resnet50_translation_rotation_0_240908.json +6 -0
- brainscore_vision/models/yudixie_resnet50_250117_5/setup.py +25 -0
- brainscore_vision/models/yudixie_resnet50_250117_5/test.py +1 -0
- brainscore_vision/models/yudixie_resnet50_250117_6/__init__.py +11 -0
- brainscore_vision/models/yudixie_resnet50_250117_6/model.py +60 -0
- brainscore_vision/models/yudixie_resnet50_250117_6/region_layer_map/yudixie_resnet50_distance_translation_rotation_0_240908.json +6 -0
- brainscore_vision/models/yudixie_resnet50_250117_6/setup.py +25 -0
- brainscore_vision/models/yudixie_resnet50_250117_6/test.py +1 -0
- brainscore_vision/models/yudixie_resnet50_250117_7/__init__.py +11 -0
- brainscore_vision/models/yudixie_resnet50_250117_7/model.py +60 -0
- brainscore_vision/models/yudixie_resnet50_250117_7/region_layer_map/yudixie_resnet50_category_class_0_240908.json +6 -0
- brainscore_vision/models/yudixie_resnet50_250117_7/setup.py +25 -0
- brainscore_vision/models/yudixie_resnet50_250117_7/test.py +1 -0
- brainscore_vision/models/yudixie_resnet50_250117_8/__init__.py +11 -0
- brainscore_vision/models/yudixie_resnet50_250117_8/model.py +60 -0
- brainscore_vision/models/yudixie_resnet50_250117_8/region_layer_map/yudixie_resnet50_object_class_0_240908.json +6 -0
- brainscore_vision/models/yudixie_resnet50_250117_8/setup.py +25 -0
- brainscore_vision/models/yudixie_resnet50_250117_8/test.py +1 -0
- brainscore_vision/models/yudixie_resnet50_250117_9/__init__.py +11 -0
- brainscore_vision/models/yudixie_resnet50_250117_9/model.py +60 -0
- brainscore_vision/models/yudixie_resnet50_250117_9/region_layer_map/yudixie_resnet50_cat_obj_class_all_latents_0_240908.json +6 -0
- brainscore_vision/models/yudixie_resnet50_250117_9/setup.py +25 -0
- brainscore_vision/models/yudixie_resnet50_250117_9/test.py +1 -0
- brainscore_vision/submission/actions_helpers.py +2 -3
- {brainscore_vision-2.2.3.dist-info → brainscore_vision-2.2.5.dist-info}/METADATA +6 -6
- {brainscore_vision-2.2.3.dist-info → brainscore_vision-2.2.5.dist-info}/RECORD +714 -130
- {brainscore_vision-2.2.3.dist-info → brainscore_vision-2.2.5.dist-info}/WHEEL +1 -1
- docs/source/index.rst +1 -0
- docs/source/modules/submission.rst +1 -1
- docs/source/modules/version_bumping.rst +43 -0
- tests/test_submission/test_actions_helpers.py +2 -6
- brainscore_vision/models/densenet_201_pytorch/test.py +0 -8
- brainscore_vision/models/inception_v3_pytorch/test.py +0 -8
- brainscore_vision/models/inception_v4_pytorch/test.py +0 -8
- brainscore_vision/models/mobilenet_v2_1_4_224_pytorch/__init__.py +0 -7
- brainscore_vision/models/mobilenet_v2_1_4_224_pytorch/test.py +0 -8
- brainscore_vision/models/pnasnet_large_pytorch/test.py +0 -8
- brainscore_vision/models/resnet_152_v2_pytorch/__init__.py +0 -7
- brainscore_vision/models/resnet_152_v2_pytorch/test.py +0 -8
- /brainscore_vision/models/{densenet_201_pytorch → densenet_201}/requirements.txt +0 -0
- /brainscore_vision/models/{inception_v3_pytorch → inception_v3}/requirements.txt +0 -0
- /brainscore_vision/models/{inception_v4_pytorch → inception_v4}/requirements.txt +0 -0
- /brainscore_vision/models/{mobilenet_v2_1_4_224_pytorch → mobilenet_v2_1_0_224}/requirements.txt +0 -0
- /brainscore_vision/models/{pnasnet_large_pytorch → nasnet_large}/requirements.txt +0 -0
- /brainscore_vision/models/{resnet_152_v2_pytorch → resnet50_vicregl0p75}/requirements.txt +0 -0
- {brainscore_vision-2.2.3.dist-info → brainscore_vision-2.2.5.dist-info}/LICENSE +0 -0
- {brainscore_vision-2.2.3.dist-info → brainscore_vision-2.2.5.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,685 @@
|
|
1
|
+
import functools
|
2
|
+
from brainscore_vision.model_helpers.activations.pytorch import load_preprocess_images
|
3
|
+
from brainscore_vision.model_helpers.activations.pytorch import PytorchWrapper
|
4
|
+
from brainscore_vision.model_helpers.check_submission import check_models
|
5
|
+
from brainscore_vision.model_helpers.s3 import load_weight_file
|
6
|
+
import torch
|
7
|
+
import torch.nn as nn
|
8
|
+
import torch.nn.functional as F
|
9
|
+
import torch.utils.model_zoo as model_zoo
|
10
|
+
from torch.autograd import Variable
|
11
|
+
|
12
|
+
pretrained_settings = {
|
13
|
+
'nasnetamobile': {
|
14
|
+
'imagenet': {
|
15
|
+
#'url': 'https://github.com/veronikayurchuk/pretrained-models.pytorch/releases/download/v1.0/nasnetmobile-7e03cead.pth.tar',
|
16
|
+
'url': 'http://data.lip6.fr/cadene/pretrainedmodels/nasnetamobile-7e03cead.pth',
|
17
|
+
'input_space': 'RGB',
|
18
|
+
'input_size': [3, 224, 224], # resize 256
|
19
|
+
'input_range': [0, 1],
|
20
|
+
'mean': [0.5, 0.5, 0.5],
|
21
|
+
'std': [0.5, 0.5, 0.5],
|
22
|
+
'num_classes': 1000
|
23
|
+
}
|
24
|
+
}
|
25
|
+
}
|
26
|
+
|
27
|
+
|
28
|
+
class MaxPoolPad(nn.Module):
|
29
|
+
|
30
|
+
def __init__(self):
|
31
|
+
super(MaxPoolPad, self).__init__()
|
32
|
+
self.pad = nn.ZeroPad2d((1, 0, 1, 0))
|
33
|
+
self.pool = nn.MaxPool2d(3, stride=2, padding=1)
|
34
|
+
|
35
|
+
def forward(self, x):
|
36
|
+
x = self.pad(x)
|
37
|
+
x = self.pool(x)
|
38
|
+
x = x[:, :, 1:, 1:].contiguous()
|
39
|
+
return x
|
40
|
+
|
41
|
+
|
42
|
+
class AvgPoolPad(nn.Module):
|
43
|
+
|
44
|
+
def __init__(self, stride=2, padding=1):
|
45
|
+
super(AvgPoolPad, self).__init__()
|
46
|
+
self.pad = nn.ZeroPad2d((1, 0, 1, 0))
|
47
|
+
self.pool = nn.AvgPool2d(3, stride=stride, padding=padding, count_include_pad=False)
|
48
|
+
|
49
|
+
def forward(self, x):
|
50
|
+
x = self.pad(x)
|
51
|
+
x = self.pool(x)
|
52
|
+
x = x[:, :, 1:, 1:].contiguous()
|
53
|
+
return x
|
54
|
+
|
55
|
+
|
56
|
+
class SeparableConv2d(nn.Module):
|
57
|
+
|
58
|
+
def __init__(self, in_channels, out_channels, dw_kernel, dw_stride, dw_padding, bias=False):
|
59
|
+
super(SeparableConv2d, self).__init__()
|
60
|
+
self.depthwise_conv2d = nn.Conv2d(in_channels, in_channels, dw_kernel,
|
61
|
+
stride=dw_stride,
|
62
|
+
padding=dw_padding,
|
63
|
+
bias=bias,
|
64
|
+
groups=in_channels)
|
65
|
+
self.pointwise_conv2d = nn.Conv2d(in_channels, out_channels, 1, stride=1, bias=bias)
|
66
|
+
|
67
|
+
def forward(self, x):
|
68
|
+
x = self.depthwise_conv2d(x)
|
69
|
+
x = self.pointwise_conv2d(x)
|
70
|
+
return x
|
71
|
+
|
72
|
+
|
73
|
+
class BranchSeparables(nn.Module):
|
74
|
+
|
75
|
+
def __init__(self, in_channels, out_channels, kernel_size, stride, padding, name=None, bias=False):
|
76
|
+
super(BranchSeparables, self).__init__()
|
77
|
+
self.relu = nn.ReLU()
|
78
|
+
self.separable_1 = SeparableConv2d(in_channels, in_channels, kernel_size, stride, padding, bias=bias)
|
79
|
+
self.bn_sep_1 = nn.BatchNorm2d(in_channels, eps=0.001, momentum=0.1, affine=True)
|
80
|
+
self.relu1 = nn.ReLU()
|
81
|
+
self.separable_2 = SeparableConv2d(in_channels, out_channels, kernel_size, 1, padding, bias=bias)
|
82
|
+
self.bn_sep_2 = nn.BatchNorm2d(out_channels, eps=0.001, momentum=0.1, affine=True)
|
83
|
+
self.name = name
|
84
|
+
|
85
|
+
def forward(self, x):
|
86
|
+
x = self.relu(x)
|
87
|
+
if self.name == 'specific':
|
88
|
+
x = nn.ZeroPad2d((1, 0, 1, 0))(x)
|
89
|
+
x = self.separable_1(x)
|
90
|
+
if self.name == 'specific':
|
91
|
+
x = x[:, :, 1:, 1:].contiguous()
|
92
|
+
|
93
|
+
x = self.bn_sep_1(x)
|
94
|
+
x = self.relu1(x)
|
95
|
+
x = self.separable_2(x)
|
96
|
+
x = self.bn_sep_2(x)
|
97
|
+
return x
|
98
|
+
|
99
|
+
|
100
|
+
class BranchSeparablesStem(nn.Module):
|
101
|
+
|
102
|
+
def __init__(self, in_channels, out_channels, kernel_size, stride, padding, bias=False):
|
103
|
+
super(BranchSeparablesStem, self).__init__()
|
104
|
+
self.relu = nn.ReLU()
|
105
|
+
self.separable_1 = SeparableConv2d(in_channels, out_channels, kernel_size, stride, padding, bias=bias)
|
106
|
+
self.bn_sep_1 = nn.BatchNorm2d(out_channels, eps=0.001, momentum=0.1, affine=True)
|
107
|
+
self.relu1 = nn.ReLU()
|
108
|
+
self.separable_2 = SeparableConv2d(out_channels, out_channels, kernel_size, 1, padding, bias=bias)
|
109
|
+
self.bn_sep_2 = nn.BatchNorm2d(out_channels, eps=0.001, momentum=0.1, affine=True)
|
110
|
+
|
111
|
+
def forward(self, x):
|
112
|
+
x = self.relu(x)
|
113
|
+
x = self.separable_1(x)
|
114
|
+
x = self.bn_sep_1(x)
|
115
|
+
x = self.relu1(x)
|
116
|
+
x = self.separable_2(x)
|
117
|
+
x = self.bn_sep_2(x)
|
118
|
+
return x
|
119
|
+
|
120
|
+
|
121
|
+
class BranchSeparablesReduction(BranchSeparables):
|
122
|
+
|
123
|
+
def __init__(self, in_channels, out_channels, kernel_size, stride, padding, z_padding=1, bias=False):
|
124
|
+
BranchSeparables.__init__(self, in_channels, out_channels, kernel_size, stride, padding, bias)
|
125
|
+
self.padding = nn.ZeroPad2d((z_padding, 0, z_padding, 0))
|
126
|
+
|
127
|
+
def forward(self, x):
|
128
|
+
x = self.relu(x)
|
129
|
+
x = self.padding(x)
|
130
|
+
x = self.separable_1(x)
|
131
|
+
x = x[:, :, 1:, 1:].contiguous()
|
132
|
+
x = self.bn_sep_1(x)
|
133
|
+
x = self.relu1(x)
|
134
|
+
x = self.separable_2(x)
|
135
|
+
x = self.bn_sep_2(x)
|
136
|
+
return x
|
137
|
+
|
138
|
+
|
139
|
+
class CellStem0(nn.Module):
|
140
|
+
def __init__(self, stem_filters, num_filters=42):
|
141
|
+
super(CellStem0, self).__init__()
|
142
|
+
self.num_filters = num_filters
|
143
|
+
self.stem_filters = stem_filters
|
144
|
+
self.conv_1x1 = nn.Sequential()
|
145
|
+
self.conv_1x1.add_module('relu', nn.ReLU())
|
146
|
+
self.conv_1x1.add_module('conv', nn.Conv2d(self.stem_filters, self.num_filters, 1, stride=1, bias=False))
|
147
|
+
self.conv_1x1.add_module('bn', nn.BatchNorm2d(self.num_filters, eps=0.001, momentum=0.1, affine=True))
|
148
|
+
|
149
|
+
self.comb_iter_0_left = BranchSeparables(self.num_filters, self.num_filters, 5, 2, 2)
|
150
|
+
self.comb_iter_0_right = BranchSeparablesStem(self.stem_filters, self.num_filters, 7, 2, 3, bias=False)
|
151
|
+
|
152
|
+
self.comb_iter_1_left = nn.MaxPool2d(3, stride=2, padding=1)
|
153
|
+
self.comb_iter_1_right = BranchSeparablesStem(self.stem_filters, self.num_filters, 7, 2, 3, bias=False)
|
154
|
+
|
155
|
+
self.comb_iter_2_left = nn.AvgPool2d(3, stride=2, padding=1, count_include_pad=False)
|
156
|
+
self.comb_iter_2_right = BranchSeparablesStem(self.stem_filters, self.num_filters, 5, 2, 2, bias=False)
|
157
|
+
|
158
|
+
self.comb_iter_3_right = nn.AvgPool2d(3, stride=1, padding=1, count_include_pad=False)
|
159
|
+
|
160
|
+
self.comb_iter_4_left = BranchSeparables(self.num_filters, self.num_filters, 3, 1, 1, bias=False)
|
161
|
+
self.comb_iter_4_right = nn.MaxPool2d(3, stride=2, padding=1)
|
162
|
+
|
163
|
+
def forward(self, x):
|
164
|
+
x1 = self.conv_1x1(x)
|
165
|
+
|
166
|
+
x_comb_iter_0_left = self.comb_iter_0_left(x1)
|
167
|
+
x_comb_iter_0_right = self.comb_iter_0_right(x)
|
168
|
+
x_comb_iter_0 = x_comb_iter_0_left + x_comb_iter_0_right
|
169
|
+
|
170
|
+
x_comb_iter_1_left = self.comb_iter_1_left(x1)
|
171
|
+
x_comb_iter_1_right = self.comb_iter_1_right(x)
|
172
|
+
x_comb_iter_1 = x_comb_iter_1_left + x_comb_iter_1_right
|
173
|
+
|
174
|
+
x_comb_iter_2_left = self.comb_iter_2_left(x1)
|
175
|
+
x_comb_iter_2_right = self.comb_iter_2_right(x)
|
176
|
+
x_comb_iter_2 = x_comb_iter_2_left + x_comb_iter_2_right
|
177
|
+
|
178
|
+
x_comb_iter_3_right = self.comb_iter_3_right(x_comb_iter_0)
|
179
|
+
x_comb_iter_3 = x_comb_iter_3_right + x_comb_iter_1
|
180
|
+
|
181
|
+
x_comb_iter_4_left = self.comb_iter_4_left(x_comb_iter_0)
|
182
|
+
x_comb_iter_4_right = self.comb_iter_4_right(x1)
|
183
|
+
x_comb_iter_4 = x_comb_iter_4_left + x_comb_iter_4_right
|
184
|
+
|
185
|
+
x_out = torch.cat([x_comb_iter_1, x_comb_iter_2, x_comb_iter_3, x_comb_iter_4], 1)
|
186
|
+
return x_out
|
187
|
+
|
188
|
+
|
189
|
+
class CellStem1(nn.Module):
|
190
|
+
|
191
|
+
def __init__(self, stem_filters, num_filters):
|
192
|
+
super(CellStem1, self).__init__()
|
193
|
+
self.num_filters = num_filters
|
194
|
+
self.stem_filters = stem_filters
|
195
|
+
self.conv_1x1 = nn.Sequential()
|
196
|
+
self.conv_1x1.add_module('relu', nn.ReLU())
|
197
|
+
self.conv_1x1.add_module('conv', nn.Conv2d(2*self.num_filters, self.num_filters, 1, stride=1, bias=False))
|
198
|
+
self.conv_1x1.add_module('bn', nn.BatchNorm2d(self.num_filters, eps=0.001, momentum=0.1, affine=True))
|
199
|
+
|
200
|
+
self.relu = nn.ReLU()
|
201
|
+
self.path_1 = nn.Sequential()
|
202
|
+
self.path_1.add_module('avgpool', nn.AvgPool2d(1, stride=2, count_include_pad=False))
|
203
|
+
self.path_1.add_module('conv', nn.Conv2d(self.stem_filters, self.num_filters//2, 1, stride=1, bias=False))
|
204
|
+
self.path_2 = nn.ModuleList()
|
205
|
+
self.path_2.add_module('pad', nn.ZeroPad2d((0, 1, 0, 1)))
|
206
|
+
self.path_2.add_module('avgpool', nn.AvgPool2d(1, stride=2, count_include_pad=False))
|
207
|
+
self.path_2.add_module('conv', nn.Conv2d(self.stem_filters, self.num_filters//2, 1, stride=1, bias=False))
|
208
|
+
|
209
|
+
self.final_path_bn = nn.BatchNorm2d(self.num_filters, eps=0.001, momentum=0.1, affine=True)
|
210
|
+
|
211
|
+
self.comb_iter_0_left = BranchSeparables(self.num_filters, self.num_filters, 5, 2, 2, name='specific', bias=False)
|
212
|
+
self.comb_iter_0_right = BranchSeparables(self.num_filters, self.num_filters, 7, 2, 3, name='specific', bias=False)
|
213
|
+
|
214
|
+
# self.comb_iter_1_left = nn.MaxPool2d(3, stride=2, padding=1)
|
215
|
+
self.comb_iter_1_left = MaxPoolPad()
|
216
|
+
self.comb_iter_1_right = BranchSeparables(self.num_filters, self.num_filters, 7, 2, 3, name='specific', bias=False)
|
217
|
+
|
218
|
+
# self.comb_iter_2_left = nn.AvgPool2d(3, stride=2, padding=1, count_include_pad=False)
|
219
|
+
self.comb_iter_2_left = AvgPoolPad()
|
220
|
+
self.comb_iter_2_right = BranchSeparables(self.num_filters, self.num_filters, 5, 2, 2, name='specific', bias=False)
|
221
|
+
|
222
|
+
self.comb_iter_3_right = nn.AvgPool2d(3, stride=1, padding=1, count_include_pad=False)
|
223
|
+
|
224
|
+
self.comb_iter_4_left = BranchSeparables(self.num_filters, self.num_filters, 3, 1, 1, name='specific', bias=False)
|
225
|
+
# self.comb_iter_4_right = nn.MaxPool2d(3, stride=2, padding=1)
|
226
|
+
self.comb_iter_4_right = MaxPoolPad()
|
227
|
+
|
228
|
+
def forward(self, x_conv0, x_stem_0):
|
229
|
+
x_left = self.conv_1x1(x_stem_0)
|
230
|
+
|
231
|
+
x_relu = self.relu(x_conv0)
|
232
|
+
# path 1
|
233
|
+
x_path1 = self.path_1(x_relu)
|
234
|
+
# path 2
|
235
|
+
x_path2 = self.path_2.pad(x_relu)
|
236
|
+
x_path2 = x_path2[:, :, 1:, 1:]
|
237
|
+
x_path2 = self.path_2.avgpool(x_path2)
|
238
|
+
x_path2 = self.path_2.conv(x_path2)
|
239
|
+
# final path
|
240
|
+
x_right = self.final_path_bn(torch.cat([x_path1, x_path2], 1))
|
241
|
+
|
242
|
+
x_comb_iter_0_left = self.comb_iter_0_left(x_left)
|
243
|
+
x_comb_iter_0_right = self.comb_iter_0_right(x_right)
|
244
|
+
x_comb_iter_0 = x_comb_iter_0_left + x_comb_iter_0_right
|
245
|
+
|
246
|
+
x_comb_iter_1_left = self.comb_iter_1_left(x_left)
|
247
|
+
x_comb_iter_1_right = self.comb_iter_1_right(x_right)
|
248
|
+
x_comb_iter_1 = x_comb_iter_1_left + x_comb_iter_1_right
|
249
|
+
|
250
|
+
x_comb_iter_2_left = self.comb_iter_2_left(x_left)
|
251
|
+
x_comb_iter_2_right = self.comb_iter_2_right(x_right)
|
252
|
+
x_comb_iter_2 = x_comb_iter_2_left + x_comb_iter_2_right
|
253
|
+
|
254
|
+
x_comb_iter_3_right = self.comb_iter_3_right(x_comb_iter_0)
|
255
|
+
x_comb_iter_3 = x_comb_iter_3_right + x_comb_iter_1
|
256
|
+
|
257
|
+
x_comb_iter_4_left = self.comb_iter_4_left(x_comb_iter_0)
|
258
|
+
x_comb_iter_4_right = self.comb_iter_4_right(x_left)
|
259
|
+
x_comb_iter_4 = x_comb_iter_4_left + x_comb_iter_4_right
|
260
|
+
|
261
|
+
x_out = torch.cat([x_comb_iter_1, x_comb_iter_2, x_comb_iter_3, x_comb_iter_4], 1)
|
262
|
+
return x_out
|
263
|
+
|
264
|
+
|
265
|
+
class FirstCell(nn.Module):
|
266
|
+
|
267
|
+
def __init__(self, in_channels_left, out_channels_left, in_channels_right, out_channels_right):
|
268
|
+
super(FirstCell, self).__init__()
|
269
|
+
self.conv_1x1 = nn.Sequential()
|
270
|
+
self.conv_1x1.add_module('relu', nn.ReLU())
|
271
|
+
self.conv_1x1.add_module('conv', nn.Conv2d(in_channels_right, out_channels_right, 1, stride=1, bias=False))
|
272
|
+
self.conv_1x1.add_module('bn', nn.BatchNorm2d(out_channels_right, eps=0.001, momentum=0.1, affine=True))
|
273
|
+
|
274
|
+
self.relu = nn.ReLU()
|
275
|
+
self.path_1 = nn.Sequential()
|
276
|
+
self.path_1.add_module('avgpool', nn.AvgPool2d(1, stride=2, count_include_pad=False))
|
277
|
+
self.path_1.add_module('conv', nn.Conv2d(in_channels_left, out_channels_left, 1, stride=1, bias=False))
|
278
|
+
self.path_2 = nn.ModuleList()
|
279
|
+
self.path_2.add_module('pad', nn.ZeroPad2d((0, 1, 0, 1)))
|
280
|
+
self.path_2.add_module('avgpool', nn.AvgPool2d(1, stride=2, count_include_pad=False))
|
281
|
+
self.path_2.add_module('conv', nn.Conv2d(in_channels_left, out_channels_left, 1, stride=1, bias=False))
|
282
|
+
|
283
|
+
self.final_path_bn = nn.BatchNorm2d(out_channels_left * 2, eps=0.001, momentum=0.1, affine=True)
|
284
|
+
|
285
|
+
self.comb_iter_0_left = BranchSeparables(out_channels_right, out_channels_right, 5, 1, 2, bias=False)
|
286
|
+
self.comb_iter_0_right = BranchSeparables(out_channels_right, out_channels_right, 3, 1, 1, bias=False)
|
287
|
+
|
288
|
+
self.comb_iter_1_left = BranchSeparables(out_channels_right, out_channels_right, 5, 1, 2, bias=False)
|
289
|
+
self.comb_iter_1_right = BranchSeparables(out_channels_right, out_channels_right, 3, 1, 1, bias=False)
|
290
|
+
|
291
|
+
self.comb_iter_2_left = nn.AvgPool2d(3, stride=1, padding=1, count_include_pad=False)
|
292
|
+
|
293
|
+
self.comb_iter_3_left = nn.AvgPool2d(3, stride=1, padding=1, count_include_pad=False)
|
294
|
+
self.comb_iter_3_right = nn.AvgPool2d(3, stride=1, padding=1, count_include_pad=False)
|
295
|
+
|
296
|
+
self.comb_iter_4_left = BranchSeparables(out_channels_right, out_channels_right, 3, 1, 1, bias=False)
|
297
|
+
|
298
|
+
def forward(self, x, x_prev):
|
299
|
+
x_relu = self.relu(x_prev)
|
300
|
+
# path 1
|
301
|
+
x_path1 = self.path_1(x_relu)
|
302
|
+
# path 2
|
303
|
+
x_path2 = self.path_2.pad(x_relu)
|
304
|
+
x_path2 = x_path2[:, :, 1:, 1:]
|
305
|
+
x_path2 = self.path_2.avgpool(x_path2)
|
306
|
+
x_path2 = self.path_2.conv(x_path2)
|
307
|
+
# final path
|
308
|
+
x_left = self.final_path_bn(torch.cat([x_path1, x_path2], 1))
|
309
|
+
|
310
|
+
x_right = self.conv_1x1(x)
|
311
|
+
|
312
|
+
x_comb_iter_0_left = self.comb_iter_0_left(x_right)
|
313
|
+
x_comb_iter_0_right = self.comb_iter_0_right(x_left)
|
314
|
+
x_comb_iter_0 = x_comb_iter_0_left + x_comb_iter_0_right
|
315
|
+
|
316
|
+
x_comb_iter_1_left = self.comb_iter_1_left(x_left)
|
317
|
+
x_comb_iter_1_right = self.comb_iter_1_right(x_left)
|
318
|
+
x_comb_iter_1 = x_comb_iter_1_left + x_comb_iter_1_right
|
319
|
+
|
320
|
+
x_comb_iter_2_left = self.comb_iter_2_left(x_right)
|
321
|
+
x_comb_iter_2 = x_comb_iter_2_left + x_left
|
322
|
+
|
323
|
+
x_comb_iter_3_left = self.comb_iter_3_left(x_left)
|
324
|
+
x_comb_iter_3_right = self.comb_iter_3_right(x_left)
|
325
|
+
x_comb_iter_3 = x_comb_iter_3_left + x_comb_iter_3_right
|
326
|
+
|
327
|
+
x_comb_iter_4_left = self.comb_iter_4_left(x_right)
|
328
|
+
x_comb_iter_4 = x_comb_iter_4_left + x_right
|
329
|
+
|
330
|
+
x_out = torch.cat([x_left, x_comb_iter_0, x_comb_iter_1, x_comb_iter_2, x_comb_iter_3, x_comb_iter_4], 1)
|
331
|
+
return x_out
|
332
|
+
|
333
|
+
|
334
|
+
class NormalCell(nn.Module):
|
335
|
+
|
336
|
+
def __init__(self, in_channels_left, out_channels_left, in_channels_right, out_channels_right):
|
337
|
+
super(NormalCell, self).__init__()
|
338
|
+
self.conv_prev_1x1 = nn.Sequential()
|
339
|
+
self.conv_prev_1x1.add_module('relu', nn.ReLU())
|
340
|
+
self.conv_prev_1x1.add_module('conv', nn.Conv2d(in_channels_left, out_channels_left, 1, stride=1, bias=False))
|
341
|
+
self.conv_prev_1x1.add_module('bn', nn.BatchNorm2d(out_channels_left, eps=0.001, momentum=0.1, affine=True))
|
342
|
+
|
343
|
+
self.conv_1x1 = nn.Sequential()
|
344
|
+
self.conv_1x1.add_module('relu', nn.ReLU())
|
345
|
+
self.conv_1x1.add_module('conv', nn.Conv2d(in_channels_right, out_channels_right, 1, stride=1, bias=False))
|
346
|
+
self.conv_1x1.add_module('bn', nn.BatchNorm2d(out_channels_right, eps=0.001, momentum=0.1, affine=True))
|
347
|
+
|
348
|
+
self.comb_iter_0_left = BranchSeparables(out_channels_right, out_channels_right, 5, 1, 2, bias=False)
|
349
|
+
self.comb_iter_0_right = BranchSeparables(out_channels_left, out_channels_left, 3, 1, 1, bias=False)
|
350
|
+
|
351
|
+
self.comb_iter_1_left = BranchSeparables(out_channels_left, out_channels_left, 5, 1, 2, bias=False)
|
352
|
+
self.comb_iter_1_right = BranchSeparables(out_channels_left, out_channels_left, 3, 1, 1, bias=False)
|
353
|
+
|
354
|
+
self.comb_iter_2_left = nn.AvgPool2d(3, stride=1, padding=1, count_include_pad=False)
|
355
|
+
|
356
|
+
self.comb_iter_3_left = nn.AvgPool2d(3, stride=1, padding=1, count_include_pad=False)
|
357
|
+
self.comb_iter_3_right = nn.AvgPool2d(3, stride=1, padding=1, count_include_pad=False)
|
358
|
+
|
359
|
+
self.comb_iter_4_left = BranchSeparables(out_channels_right, out_channels_right, 3, 1, 1, bias=False)
|
360
|
+
|
361
|
+
def forward(self, x, x_prev):
|
362
|
+
x_left = self.conv_prev_1x1(x_prev)
|
363
|
+
x_right = self.conv_1x1(x)
|
364
|
+
|
365
|
+
x_comb_iter_0_left = self.comb_iter_0_left(x_right)
|
366
|
+
x_comb_iter_0_right = self.comb_iter_0_right(x_left)
|
367
|
+
x_comb_iter_0 = x_comb_iter_0_left + x_comb_iter_0_right
|
368
|
+
|
369
|
+
x_comb_iter_1_left = self.comb_iter_1_left(x_left)
|
370
|
+
x_comb_iter_1_right = self.comb_iter_1_right(x_left)
|
371
|
+
x_comb_iter_1 = x_comb_iter_1_left + x_comb_iter_1_right
|
372
|
+
|
373
|
+
x_comb_iter_2_left = self.comb_iter_2_left(x_right)
|
374
|
+
x_comb_iter_2 = x_comb_iter_2_left + x_left
|
375
|
+
|
376
|
+
x_comb_iter_3_left = self.comb_iter_3_left(x_left)
|
377
|
+
x_comb_iter_3_right = self.comb_iter_3_right(x_left)
|
378
|
+
x_comb_iter_3 = x_comb_iter_3_left + x_comb_iter_3_right
|
379
|
+
|
380
|
+
x_comb_iter_4_left = self.comb_iter_4_left(x_right)
|
381
|
+
x_comb_iter_4 = x_comb_iter_4_left + x_right
|
382
|
+
|
383
|
+
x_out = torch.cat([x_left, x_comb_iter_0, x_comb_iter_1, x_comb_iter_2, x_comb_iter_3, x_comb_iter_4], 1)
|
384
|
+
return x_out
|
385
|
+
|
386
|
+
|
387
|
+
class ReductionCell0(nn.Module):
|
388
|
+
|
389
|
+
def __init__(self, in_channels_left, out_channels_left, in_channels_right, out_channels_right):
|
390
|
+
super(ReductionCell0, self).__init__()
|
391
|
+
self.conv_prev_1x1 = nn.Sequential()
|
392
|
+
self.conv_prev_1x1.add_module('relu', nn.ReLU())
|
393
|
+
self.conv_prev_1x1.add_module('conv', nn.Conv2d(in_channels_left, out_channels_left, 1, stride=1, bias=False))
|
394
|
+
self.conv_prev_1x1.add_module('bn', nn.BatchNorm2d(out_channels_left, eps=0.001, momentum=0.1, affine=True))
|
395
|
+
|
396
|
+
self.conv_1x1 = nn.Sequential()
|
397
|
+
self.conv_1x1.add_module('relu', nn.ReLU())
|
398
|
+
self.conv_1x1.add_module('conv', nn.Conv2d(in_channels_right, out_channels_right, 1, stride=1, bias=False))
|
399
|
+
self.conv_1x1.add_module('bn', nn.BatchNorm2d(out_channels_right, eps=0.001, momentum=0.1, affine=True))
|
400
|
+
|
401
|
+
self.comb_iter_0_left = BranchSeparablesReduction(out_channels_right, out_channels_right, 5, 2, 2, bias=False)
|
402
|
+
self.comb_iter_0_right = BranchSeparablesReduction(out_channels_right, out_channels_right, 7, 2, 3, bias=False)
|
403
|
+
|
404
|
+
self.comb_iter_1_left = MaxPoolPad()
|
405
|
+
self.comb_iter_1_right = BranchSeparablesReduction(out_channels_right, out_channels_right, 7, 2, 3, bias=False)
|
406
|
+
|
407
|
+
self.comb_iter_2_left = AvgPoolPad()
|
408
|
+
self.comb_iter_2_right = BranchSeparablesReduction(out_channels_right, out_channels_right, 5, 2, 2, bias=False)
|
409
|
+
|
410
|
+
self.comb_iter_3_right = nn.AvgPool2d(3, stride=1, padding=1, count_include_pad=False)
|
411
|
+
|
412
|
+
self.comb_iter_4_left = BranchSeparablesReduction(out_channels_right, out_channels_right, 3, 1, 1, bias=False)
|
413
|
+
self.comb_iter_4_right = MaxPoolPad()
|
414
|
+
|
415
|
+
def forward(self, x, x_prev):
|
416
|
+
x_left = self.conv_prev_1x1(x_prev)
|
417
|
+
x_right = self.conv_1x1(x)
|
418
|
+
|
419
|
+
x_comb_iter_0_left = self.comb_iter_0_left(x_right)
|
420
|
+
x_comb_iter_0_right = self.comb_iter_0_right(x_left)
|
421
|
+
x_comb_iter_0 = x_comb_iter_0_left + x_comb_iter_0_right
|
422
|
+
|
423
|
+
x_comb_iter_1_left = self.comb_iter_1_left(x_right)
|
424
|
+
x_comb_iter_1_right = self.comb_iter_1_right(x_left)
|
425
|
+
x_comb_iter_1 = x_comb_iter_1_left + x_comb_iter_1_right
|
426
|
+
|
427
|
+
x_comb_iter_2_left = self.comb_iter_2_left(x_right)
|
428
|
+
x_comb_iter_2_right = self.comb_iter_2_right(x_left)
|
429
|
+
x_comb_iter_2 = x_comb_iter_2_left + x_comb_iter_2_right
|
430
|
+
|
431
|
+
x_comb_iter_3_right = self.comb_iter_3_right(x_comb_iter_0)
|
432
|
+
x_comb_iter_3 = x_comb_iter_3_right + x_comb_iter_1
|
433
|
+
|
434
|
+
x_comb_iter_4_left = self.comb_iter_4_left(x_comb_iter_0)
|
435
|
+
x_comb_iter_4_right = self.comb_iter_4_right(x_right)
|
436
|
+
x_comb_iter_4 = x_comb_iter_4_left + x_comb_iter_4_right
|
437
|
+
|
438
|
+
x_out = torch.cat([x_comb_iter_1, x_comb_iter_2, x_comb_iter_3, x_comb_iter_4], 1)
|
439
|
+
return x_out
|
440
|
+
|
441
|
+
|
442
|
+
class ReductionCell1(nn.Module):
|
443
|
+
|
444
|
+
def __init__(self, in_channels_left, out_channels_left, in_channels_right, out_channels_right):
|
445
|
+
super(ReductionCell1, self).__init__()
|
446
|
+
self.conv_prev_1x1 = nn.Sequential()
|
447
|
+
self.conv_prev_1x1.add_module('relu', nn.ReLU())
|
448
|
+
self.conv_prev_1x1.add_module('conv', nn.Conv2d(in_channels_left, out_channels_left, 1, stride=1, bias=False))
|
449
|
+
self.conv_prev_1x1.add_module('bn', nn.BatchNorm2d(out_channels_left, eps=0.001, momentum=0.1, affine=True))
|
450
|
+
|
451
|
+
self.conv_1x1 = nn.Sequential()
|
452
|
+
self.conv_1x1.add_module('relu', nn.ReLU())
|
453
|
+
self.conv_1x1.add_module('conv', nn.Conv2d(in_channels_right, out_channels_right, 1, stride=1, bias=False))
|
454
|
+
self.conv_1x1.add_module('bn', nn.BatchNorm2d(out_channels_right, eps=0.001, momentum=0.1, affine=True))
|
455
|
+
|
456
|
+
self.comb_iter_0_left = BranchSeparables(out_channels_right, out_channels_right, 5, 2, 2, name='specific', bias=False)
|
457
|
+
self.comb_iter_0_right = BranchSeparables(out_channels_right, out_channels_right, 7, 2, 3, name='specific', bias=False)
|
458
|
+
|
459
|
+
# self.comb_iter_1_left = nn.MaxPool2d(3, stride=2, padding=1)
|
460
|
+
self.comb_iter_1_left = MaxPoolPad()
|
461
|
+
self.comb_iter_1_right = BranchSeparables(out_channels_right, out_channels_right, 7, 2, 3, name='specific', bias=False)
|
462
|
+
|
463
|
+
# self.comb_iter_2_left = nn.AvgPool2d(3, stride=2, padding=1, count_include_pad=False)
|
464
|
+
self.comb_iter_2_left = AvgPoolPad()
|
465
|
+
self.comb_iter_2_right = BranchSeparables(out_channels_right, out_channels_right, 5, 2, 2, name='specific', bias=False)
|
466
|
+
|
467
|
+
self.comb_iter_3_right = nn.AvgPool2d(3, stride=1, padding=1, count_include_pad=False)
|
468
|
+
|
469
|
+
self.comb_iter_4_left = BranchSeparables(out_channels_right, out_channels_right, 3, 1, 1, name='specific', bias=False)
|
470
|
+
# self.comb_iter_4_right = nn.MaxPool2d(3, stride=2, padding=1)
|
471
|
+
self.comb_iter_4_right =MaxPoolPad()
|
472
|
+
|
473
|
+
def forward(self, x, x_prev):
|
474
|
+
x_left = self.conv_prev_1x1(x_prev)
|
475
|
+
x_right = self.conv_1x1(x)
|
476
|
+
|
477
|
+
x_comb_iter_0_left = self.comb_iter_0_left(x_right)
|
478
|
+
x_comb_iter_0_right = self.comb_iter_0_right(x_left)
|
479
|
+
x_comb_iter_0 = x_comb_iter_0_left + x_comb_iter_0_right
|
480
|
+
|
481
|
+
x_comb_iter_1_left = self.comb_iter_1_left(x_right)
|
482
|
+
x_comb_iter_1_right = self.comb_iter_1_right(x_left)
|
483
|
+
x_comb_iter_1 = x_comb_iter_1_left + x_comb_iter_1_right
|
484
|
+
|
485
|
+
x_comb_iter_2_left = self.comb_iter_2_left(x_right)
|
486
|
+
x_comb_iter_2_right = self.comb_iter_2_right(x_left)
|
487
|
+
x_comb_iter_2 = x_comb_iter_2_left + x_comb_iter_2_right
|
488
|
+
|
489
|
+
x_comb_iter_3_right = self.comb_iter_3_right(x_comb_iter_0)
|
490
|
+
x_comb_iter_3 = x_comb_iter_3_right + x_comb_iter_1
|
491
|
+
|
492
|
+
x_comb_iter_4_left = self.comb_iter_4_left(x_comb_iter_0)
|
493
|
+
x_comb_iter_4_right = self.comb_iter_4_right(x_right)
|
494
|
+
x_comb_iter_4 = x_comb_iter_4_left + x_comb_iter_4_right
|
495
|
+
|
496
|
+
x_out = torch.cat([x_comb_iter_1, x_comb_iter_2, x_comb_iter_3, x_comb_iter_4], 1)
|
497
|
+
return x_out
|
498
|
+
|
499
|
+
|
500
|
+
class NASNetAMobile(nn.Module):
|
501
|
+
"""NASNetAMobile (4 @ 1056) """
|
502
|
+
|
503
|
+
def __init__(self, num_classes=1000, stem_filters=32, penultimate_filters=1056, filters_multiplier=2):
|
504
|
+
super(NASNetAMobile, self).__init__()
|
505
|
+
self.num_classes = num_classes
|
506
|
+
self.stem_filters = stem_filters
|
507
|
+
self.penultimate_filters = penultimate_filters
|
508
|
+
self.filters_multiplier = filters_multiplier
|
509
|
+
|
510
|
+
filters = self.penultimate_filters // 24
|
511
|
+
# 24 is default value for the architecture
|
512
|
+
|
513
|
+
self.conv0 = nn.Sequential()
|
514
|
+
self.conv0.add_module('conv', nn.Conv2d(in_channels=3, out_channels=self.stem_filters, kernel_size=3, padding=0, stride=2,
|
515
|
+
bias=False))
|
516
|
+
self.conv0.add_module('bn', nn.BatchNorm2d(self.stem_filters, eps=0.001, momentum=0.1, affine=True))
|
517
|
+
|
518
|
+
self.cell_stem_0 = CellStem0(self.stem_filters, num_filters=filters // (filters_multiplier ** 2))
|
519
|
+
self.cell_stem_1 = CellStem1(self.stem_filters, num_filters=filters // filters_multiplier)
|
520
|
+
|
521
|
+
self.cell_0 = FirstCell(in_channels_left=filters, out_channels_left=filters//2, # 1, 0.5
|
522
|
+
in_channels_right=2*filters, out_channels_right=filters) # 2, 1
|
523
|
+
self.cell_1 = NormalCell(in_channels_left=2*filters, out_channels_left=filters, # 2, 1
|
524
|
+
in_channels_right=6*filters, out_channels_right=filters) # 6, 1
|
525
|
+
self.cell_2 = NormalCell(in_channels_left=6*filters, out_channels_left=filters, # 6, 1
|
526
|
+
in_channels_right=6*filters, out_channels_right=filters) # 6, 1
|
527
|
+
self.cell_3 = NormalCell(in_channels_left=6*filters, out_channels_left=filters, # 6, 1
|
528
|
+
in_channels_right=6*filters, out_channels_right=filters) # 6, 1
|
529
|
+
|
530
|
+
self.reduction_cell_0 = ReductionCell0(in_channels_left=6*filters, out_channels_left=2*filters, # 6, 2
|
531
|
+
in_channels_right=6*filters, out_channels_right=2*filters) # 6, 2
|
532
|
+
|
533
|
+
self.cell_6 = FirstCell(in_channels_left=6*filters, out_channels_left=filters, # 6, 1
|
534
|
+
in_channels_right=8*filters, out_channels_right=2*filters) # 8, 2
|
535
|
+
self.cell_7 = NormalCell(in_channels_left=8*filters, out_channels_left=2*filters, # 8, 2
|
536
|
+
in_channels_right=12*filters, out_channels_right=2*filters) # 12, 2
|
537
|
+
self.cell_8 = NormalCell(in_channels_left=12*filters, out_channels_left=2*filters, # 12, 2
|
538
|
+
in_channels_right=12*filters, out_channels_right=2*filters) # 12, 2
|
539
|
+
self.cell_9 = NormalCell(in_channels_left=12*filters, out_channels_left=2*filters, # 12, 2
|
540
|
+
in_channels_right=12*filters, out_channels_right=2*filters) # 12, 2
|
541
|
+
|
542
|
+
self.reduction_cell_1 = ReductionCell1(in_channels_left=12*filters, out_channels_left=4*filters, # 12, 4
|
543
|
+
in_channels_right=12*filters, out_channels_right=4*filters) # 12, 4
|
544
|
+
|
545
|
+
self.cell_12 = FirstCell(in_channels_left=12*filters, out_channels_left=2*filters, # 12, 2
|
546
|
+
in_channels_right=16*filters, out_channels_right=4*filters) # 16, 4
|
547
|
+
self.cell_13 = NormalCell(in_channels_left=16*filters, out_channels_left=4*filters, # 16, 4
|
548
|
+
in_channels_right=24*filters, out_channels_right=4*filters) # 24, 4
|
549
|
+
self.cell_14 = NormalCell(in_channels_left=24*filters, out_channels_left=4*filters, # 24, 4
|
550
|
+
in_channels_right=24*filters, out_channels_right=4*filters) # 24, 4
|
551
|
+
self.cell_15 = NormalCell(in_channels_left=24*filters, out_channels_left=4*filters, # 24, 4
|
552
|
+
in_channels_right=24*filters, out_channels_right=4*filters) # 24, 4
|
553
|
+
|
554
|
+
self.relu = nn.ReLU()
|
555
|
+
self.avg_pool = nn.AvgPool2d(7, stride=1, padding=0)
|
556
|
+
self.dropout = nn.Dropout()
|
557
|
+
self.last_linear = nn.Linear(24*filters, self.num_classes)
|
558
|
+
|
559
|
+
def features(self, input):
|
560
|
+
x_conv0 = self.conv0(input)
|
561
|
+
x_stem_0 = self.cell_stem_0(x_conv0)
|
562
|
+
x_stem_1 = self.cell_stem_1(x_conv0, x_stem_0)
|
563
|
+
|
564
|
+
x_cell_0 = self.cell_0(x_stem_1, x_stem_0)
|
565
|
+
x_cell_1 = self.cell_1(x_cell_0, x_stem_1)
|
566
|
+
x_cell_2 = self.cell_2(x_cell_1, x_cell_0)
|
567
|
+
x_cell_3 = self.cell_3(x_cell_2, x_cell_1)
|
568
|
+
|
569
|
+
x_reduction_cell_0 = self.reduction_cell_0(x_cell_3, x_cell_2)
|
570
|
+
|
571
|
+
x_cell_6 = self.cell_6(x_reduction_cell_0, x_cell_3)
|
572
|
+
x_cell_7 = self.cell_7(x_cell_6, x_reduction_cell_0)
|
573
|
+
x_cell_8 = self.cell_8(x_cell_7, x_cell_6)
|
574
|
+
x_cell_9 = self.cell_9(x_cell_8, x_cell_7)
|
575
|
+
|
576
|
+
x_reduction_cell_1 = self.reduction_cell_1(x_cell_9, x_cell_8)
|
577
|
+
|
578
|
+
x_cell_12 = self.cell_12(x_reduction_cell_1, x_cell_9)
|
579
|
+
x_cell_13 = self.cell_13(x_cell_12, x_reduction_cell_1)
|
580
|
+
x_cell_14 = self.cell_14(x_cell_13, x_cell_12)
|
581
|
+
x_cell_15 = self.cell_15(x_cell_14, x_cell_13)
|
582
|
+
return x_cell_15
|
583
|
+
|
584
|
+
def logits(self, features):
|
585
|
+
x = self.relu(features)
|
586
|
+
x = self.avg_pool(x)
|
587
|
+
x = x.view(x.size(0), -1)
|
588
|
+
x = self.dropout(x)
|
589
|
+
x = self.last_linear(x)
|
590
|
+
return x
|
591
|
+
|
592
|
+
def forward(self, input):
|
593
|
+
x = self.features(input)
|
594
|
+
x = self.logits(x)
|
595
|
+
return x
|
596
|
+
|
597
|
+
|
598
|
+
def nasnetamobile(num_classes=1000, pretrained='imagenet'):
|
599
|
+
r"""NASNetALarge model architecture from the
|
600
|
+
`"NASNet" <https://arxiv.org/abs/1707.07012>`_ paper.
|
601
|
+
"""
|
602
|
+
if pretrained:
|
603
|
+
settings = pretrained_settings['nasnetamobile'][pretrained]
|
604
|
+
assert num_classes == settings['num_classes'], \
|
605
|
+
"num_classes should be {}, but is {}".format(settings['num_classes'], num_classes)
|
606
|
+
|
607
|
+
# both 'imagenet'&'imagenet+background' are loaded from same parameters
|
608
|
+
model = NASNetAMobile(num_classes=num_classes)
|
609
|
+
#model.load_state_dict(model_zoo.load_url(settings['url'], map_location=None))
|
610
|
+
|
611
|
+
model.input_space = settings['input_space']
|
612
|
+
model.input_size = settings['input_size']
|
613
|
+
model.input_range = settings['input_range']
|
614
|
+
|
615
|
+
model.mean = settings['mean']
|
616
|
+
model.std = settings['std']
|
617
|
+
else:
|
618
|
+
settings = pretrained_settings['nasnetamobile']['imagenet']
|
619
|
+
model = NASNetAMobile(num_classes=num_classes)
|
620
|
+
model.input_space = settings['input_space']
|
621
|
+
model.input_size = settings['input_size']
|
622
|
+
model.input_range = settings['input_range']
|
623
|
+
|
624
|
+
model.mean = settings['mean']
|
625
|
+
model.std = settings['std']
|
626
|
+
return model
|
627
|
+
|
628
|
+
def get_model(name):
|
629
|
+
"""
|
630
|
+
This method fetches an instance of a base model. The instance has to be callable and return a xarray object,
|
631
|
+
containing activations. There exist standard wrapper implementations for common libraries, like pytorch and
|
632
|
+
keras. Checkout the examples folder, to see more. For custom implementations check out the implementation of the
|
633
|
+
wrappers.
|
634
|
+
:param name: the name of the model to fetch
|
635
|
+
:return: the model instance
|
636
|
+
"""
|
637
|
+
assert name == 'nasnet_mobile'
|
638
|
+
preprocessing = functools.partial(load_preprocess_images, image_size=224, preprocess_type='inception')
|
639
|
+
model = nasnetamobile()
|
640
|
+
weights_path = load_weight_file(bucket="brainscore-storage", folder_name="brainscore-vision/models",
|
641
|
+
relative_path="nasnet_mobile/nasnetamobile-7e03cead.pth",
|
642
|
+
version_id="null",
|
643
|
+
sha1="2f88f50ca7b16c9462cdf4b001bdca6cc82aea35")
|
644
|
+
checkpoint = torch.load(weights_path)
|
645
|
+
model.load_state_dict(checkpoint, strict=True)
|
646
|
+
wrapper = PytorchWrapper(identifier='nasnet_mobile', model=model, preprocessing=preprocessing)
|
647
|
+
wrapper.image_size = 224
|
648
|
+
return wrapper
|
649
|
+
|
650
|
+
|
651
|
+
def get_layers(name):
|
652
|
+
assert name == 'nasnet_mobile'
|
653
|
+
layer_names = ([f'cell_{i}' for i in range(4)] + ['reduction_cell_0'] + [f'cell_{i}' for i in range(6, 10)] +
|
654
|
+
['reduction_cell_1'] + [f'cell_{i}' for i in range(12, 16)] + ['avg_pool'])
|
655
|
+
return layer_names
|
656
|
+
|
657
|
+
|
658
|
+
def get_bibtex(name):
|
659
|
+
"""
|
660
|
+
A method returning the bibtex reference of the requested model as a string.
|
661
|
+
"""
|
662
|
+
return '''
|
663
|
+
@article{DBLP:journals/corr/ZophVSL17,
|
664
|
+
author = {Barret Zoph and
|
665
|
+
Vijay Vasudevan and
|
666
|
+
Jonathon Shlens and
|
667
|
+
Quoc V. Le},
|
668
|
+
title = {Learning Transferable Architectures for Scalable Image Recognition},
|
669
|
+
journal = {CoRR},
|
670
|
+
volume = {abs/1707.07012},
|
671
|
+
year = {2017},
|
672
|
+
url = {http://arxiv.org/abs/1707.07012},
|
673
|
+
eprinttype = {arXiv},
|
674
|
+
eprint = {1707.07012},
|
675
|
+
timestamp = {Mon, 13 Aug 2018 16:48:00 +0200},
|
676
|
+
biburl = {https://dblp.org/rec/journals/corr/ZophVSL17.bib},
|
677
|
+
bibsource = {dblp computer science bibliography, https://dblp.org}
|
678
|
+
}
|
679
|
+
'''
|
680
|
+
|
681
|
+
|
682
|
+
if __name__ == '__main__':
|
683
|
+
# Use this method to ensure the correctness of the BaseModel implementations.
|
684
|
+
# It executes a mock run of brain-score benchmarks.
|
685
|
+
check_models.check_base_models(__name__)
|