├── similarity ├── registry │ ├── nnsrm_neurips18 │ │ ├── qmvpa │ │ │ ├── __init__.py │ │ │ ├── vis.py │ │ │ ├── classification.py │ │ │ └── preproc.py │ │ └── __init__.py │ ├── mouse_vision │ │ ├── mouse_vision │ │ │ ├── core │ │ │ │ ├── __init__.py │ │ │ │ └── default_dirs.py │ │ │ ├── neural_data │ │ │ │ └── __init__.py │ │ │ ├── models │ │ │ │ ├── cifar_models │ │ │ │ │ └── __init__.py │ │ │ │ ├── imagenet_models │ │ │ │ │ └── __init__.py │ │ │ │ └── model_paths.py │ │ │ ├── model_training │ │ │ │ ├── other_datasets │ │ │ │ │ └── __init__.py │ │ │ │ ├── custom_heads │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── custom_head_base.py │ │ │ │ │ └── linear_readout.py │ │ │ │ ├── imagenet_datasets │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── imagenet_base.py │ │ │ │ ├── scripts │ │ │ │ │ └── make_tpus.sh │ │ │ │ └── configs │ │ │ │ │ ├── mocov2 │ │ │ │ │ ├── test_mocov2_trainer_tpu.json │ │ │ │ │ ├── alexnet_bn_mocov2_gpu.json │ │ │ │ │ ├── test_mocov2_trainer_gpu.json │ │ │ │ │ ├── simplified_mousenet_single_stream_mocov2_trainer_gpu.json │ │ │ │ │ ├── simplified_mousenet_six_stream_visp_3x3_mocov2_trainer_gpu.json │ │ │ │ │ └── simplified_mousenet_dual_stream_visp_3x3_mocov2_trainer_gpu.json │ │ │ │ │ ├── simclr │ │ │ │ │ ├── test_simclr_trainer_tpu.json │ │ │ │ │ ├── alexnet_bn_simclr_gpu.json │ │ │ │ │ ├── test_simclr_trainer_bigbs_tpu.json │ │ │ │ │ ├── test_simclr_trainer_gpu.json │ │ │ │ │ ├── test_simclr_trainer_chengxu_gpu.json │ │ │ │ │ ├── test_simclr_trainer_100epochs_gpu.json │ │ │ │ │ ├── simplified_mousenet_single_stream_simclr_trainer_gpu.json │ │ │ │ │ ├── simplified_mousenet_six_stream_visp_3x3_simclr_trainer_gpu.json │ │ │ │ │ └── simplified_mousenet_dual_stream_visp_3x3_simclr_trainer_gpu.json │ │ │ │ │ ├── imagenet │ │ │ │ │ ├── vgg16_imagenet_trainer_tpu.json │ │ │ │ │ ├── test_imagenet_trainer_tpu.json │ │ │ │ │ ├── vgg16_64x64_imagenet_trainer_tpu.json │ │ │ │ │ ├── alexnet_six_64x64_imagenet_trainer_tpu.json │ │ │ │ │ ├── alexnet_two_64x64_imagenet_trainer_tpu.json │ │ │ │ │ ├── alexnet_five_64x64_imagenet_trainer_tpu.json │ │ │ │ │ ├── alexnet_four_64x64_imagenet_trainer_tpu.json │ │ │ │ │ ├── alexnet_three_64x64_imagenet_trainer_tpu.json │ │ │ │ │ ├── test_imagenet_trainer_gpu.json │ │ │ │ │ ├── resnet34_64x64_trainer_gpu.json │ │ │ │ │ ├── resnet50_64x64_trainer_gpu.json │ │ │ │ │ ├── simplified_mousenet_single_stream_imagenet_trainer_tpu.json │ │ │ │ │ ├── resnet101_64x64_trainer_gpu.json │ │ │ │ │ ├── resnet152_64x64_trainer_gpu.json │ │ │ │ │ ├── test_imagenet_trainer_multigpu.json │ │ │ │ │ ├── alexnet_five_64x64_imagenet_trainer_gpu.json │ │ │ │ │ ├── alexnet_four_64x64_imagenet_trainer_gpu.json │ │ │ │ │ ├── alexnet_six_64x64_imagenet_trainer_gpu.json │ │ │ │ │ ├── alexnet_two_64x64_imagenet_trainer_gpu.json │ │ │ │ │ ├── alexnet_three_64x64_imagenet_trainer_gpu.json │ │ │ │ │ ├── simplified_mousenet_dual_stream_visp_3x3_bn_imagenet_trainer_tpu.json │ │ │ │ │ ├── simplified_mousenet_six_stream_visp_3x3_bn_imagenet_trainer_tpu.json │ │ │ │ │ ├── alexnet_64x64_imagenet_IR_transforms_gpu.json │ │ │ │ │ ├── simplified_mousenet_six_stream_visp_3x3_bn_imagenet_highlr_trainer_tpu.json │ │ │ │ │ ├── alexnet_bn_64x64_imagenet_IR_transforms_gpu.json │ │ │ │ │ ├── simplified_mousenet_six_stream_visp_3x3_bn_imagenet_trainer_gpu.json │ │ │ │ │ ├── simplified_mousenet_dual_stream_visp_3x3_bn_imagenet_trainer_gpu.json │ │ │ │ │ ├── simplified_mousenet_six_stream_visp_3x3_bn_imagenet_highlr_trainer_gpu.json │ │ │ │ │ └── simplified_mousenet_six_stream_visp_3x3_bn_imagenet_lowlr_trainer_gpu.json │ │ │ │ │ ├── cifar10 │ │ │ │ │ ├── resnet18_cifar10_trainer_tpu.json │ │ │ │ │ ├── vgg16_64x64_cifar10_trainer_tpu.json │ │ │ │ │ ├── resnet18_64x64_cifar10_trainer_tpu.json │ │ │ │ │ ├── shi_mousenet_64x64_cifar10_trainer_tpu.json │ │ │ │ │ ├── alexnet_64x64_pool_6_cifar10_trainer_tpu.json │ │ │ │ │ ├── shi_mousenet_vispor5_64x64_cifar10_trainer_tpu.json │ │ │ │ │ ├── simplified_mousenet_six_stream_cifar10_trainer_tpu.json │ │ │ │ │ ├── simplified_mousenet_dual_stream_cifar10_trainer_tpu.json │ │ │ │ │ ├── simplified_mousenet_single_stream_cifar10_trainer_tpu.json │ │ │ │ │ ├── simplified_mousenet_dual_stream_visp_3x3_cifar10_trainer_tpu.json │ │ │ │ │ ├── simplified_mousenet_six_stream_visp_3x3_cifar10_trainer_tpu.json │ │ │ │ │ ├── simplified_mousenet_dual_stream_visp_3x3_bn_cifar10_trainer_tpu.json │ │ │ │ │ ├── simplified_mousenet_dual_stream_vispor_only_cifar10_trainer_tpu.json │ │ │ │ │ ├── simplified_mousenet_six_stream_visp_3x3_bn_cifar10_trainer_tpu.json │ │ │ │ │ ├── simplified_mousenet_six_stream_vispor_only_cifar10_trainer_tpu.json │ │ │ │ │ ├── simplified_mousenet_six_stream_visp_3x3_bn_cifar10_highlr_trainer_tpu.json │ │ │ │ │ ├── simplified_mousenet_six_stream_visp_3x3_bn_cifar10_lowlr_trainer_tpu.json │ │ │ │ │ ├── simplified_mousenet_dual_stream_visp_3x3_bn_cifar10_highlr_trainer_tpu.json │ │ │ │ │ ├── simplified_mousenet_dual_stream_visp_3x3_bn_cifar10_lowlr_trainer_tpu.json │ │ │ │ │ ├── simplified_mousenet_six_stream_vispor_only_visp_3x3_cifar10_trainer_tpu.json │ │ │ │ │ └── simplified_mousenet_dual_stream_vispor_only_visp_3x3_cifar10_trainer_tpu.json │ │ │ │ │ ├── simsiam │ │ │ │ │ ├── alexnet_bn_simsiam_gpu.json │ │ │ │ │ ├── test_simsiam_trainer.json │ │ │ │ │ ├── simplified_mousenet_single_stream_simsiam_trainer_gpu.json │ │ │ │ │ ├── simplified_mousenet_six_stream_visp_3x3_simsiam_trainer_gpu.json │ │ │ │ │ └── simplified_mousenet_dual_stream_visp_3x3_simsiam_trainer_gpu.json │ │ │ │ │ ├── relative_location │ │ │ │ │ ├── test_relative_location_trainer_tpu.json │ │ │ │ │ └── resnet50_relative_location_trainer_tpu.json │ │ │ │ │ ├── rotnet │ │ │ │ │ ├── test_rotnet_trainer_tpu.json │ │ │ │ │ ├── test_rotnet_trainer.json │ │ │ │ │ ├── simplified_mousenet_single_stream_rotnet_trainer_tpu.json │ │ │ │ │ ├── simplified_mousenet_six_stream_visp_3x3_rotnet_trainer_tpu.json │ │ │ │ │ ├── simplified_mousenet_dual_stream_visp_3x3_rotnet_trainer_tpu.json │ │ │ │ │ └── simplified_mousenet_six_stream_visp_3x3_rotnet_trainer_gpu.json │ │ │ │ │ ├── ir │ │ │ │ │ ├── test_ir_trainer_tpu.json │ │ │ │ │ ├── alexnet_64x64_input_pool_6_ir_trainer_tpu.json │ │ │ │ │ ├── resolution │ │ │ │ │ │ ├── alexnet_84x84_ir.json │ │ │ │ │ │ ├── alexnet_104x104_ir.json │ │ │ │ │ │ ├── alexnet_124x124_ir.json │ │ │ │ │ │ ├── alexnet_144x144_ir.json │ │ │ │ │ │ ├── alexnet_164x164_ir.json │ │ │ │ │ │ ├── alexnet_184x184_ir.json │ │ │ │ │ │ ├── alexnet_204x204_ir.json │ │ │ │ │ │ ├── dual_32x32_ir.json │ │ │ │ │ │ ├── dual_44x44_ir.json │ │ │ │ │ │ ├── dual_84x84_ir.json │ │ │ │ │ │ ├── dual_104x104_ir.json │ │ │ │ │ │ ├── dual_124x124_ir.json │ │ │ │ │ │ ├── dual_144x144_ir.json │ │ │ │ │ │ ├── dual_164x164_ir.json │ │ │ │ │ │ ├── dual_184x184_ir.json │ │ │ │ │ │ └── dual_204x204_ir.json │ │ │ │ │ ├── vgg16_64x64_ir_trainer_gpu.json │ │ │ │ │ ├── resnet18_64x64_ir_trainer_gpu.json │ │ │ │ │ ├── resnet34_64x64_ir_trainer_gpu.json │ │ │ │ │ ├── simplified_mousenet_single_stream_ir_trainer_tpu.json │ │ │ │ │ ├── alexnet_bn_ir.json │ │ │ │ │ ├── resnet101_64x64_ir_trainer_gpu.json │ │ │ │ │ ├── resnet152_64x64_ir_trainer_gpu.json │ │ │ │ │ ├── resnet50_64x64_ir_trainer_gpu.json │ │ │ │ │ ├── simplified_mousenet_dual_stream_visp_3x3_ir_trainer_tpu.json │ │ │ │ │ ├── simplified_mousenet_six_stream_visp_3x3_ir_trainer_tpu.json │ │ │ │ │ ├── alexnet_64x64_input_pool_6_ir_trainer_gpu.json │ │ │ │ │ ├── alexnet_64x64_input_pool_6_ir_trainer_gpu_adam.json │ │ │ │ │ ├── alexnet_bn_64x64_input_pool_6_ir_trainer_gpu.json │ │ │ │ │ ├── alexnet_64x64_input_pool_6_ir_trainer_gpu_lowlr.json │ │ │ │ │ ├── alexnet_dmlocomotion_ir_trainer_gpu_lowlr.json │ │ │ │ │ ├── alexnet_bn_64x64_input_pool_6_ir_trainer_gpu_lowlr.json │ │ │ │ │ ├── alexnet_224x224_ir.json │ │ │ │ │ ├── simplified_mousenet_single_stream_ir_trainer_gpu_224px.json │ │ │ │ │ ├── simplified_mousenet_dual_stream_visp_3x3_ir_trainer_gpu.json │ │ │ │ │ ├── simplified_mousenet_six_stream_visp_3x3_ir_trainer_gpu.json │ │ │ │ │ ├── test_ir_trainer.json │ │ │ │ │ ├── simplified_mousenet_six_stream_visp_3x3_ir_trainer_gpu_lowlr.json │ │ │ │ │ └── simplified_mousenet_dual_stream_visp_3x3_ir_trainer_gpu_224px.json │ │ │ │ │ ├── autoencoder │ │ │ │ │ ├── simplified_mousenet_six_stream_ae_imagenet_trainer_gpu.json │ │ │ │ │ ├── simplified_mousenet_dual_stream_ae_imagenet_trainer_gpu.json │ │ │ │ │ └── simplified_mousenet_single_stream_ae_imagenet_trainer_gpu.json │ │ │ │ │ ├── depth_prediction │ │ │ │ │ ├── simplified_mousenet_six_stream_depth_pred_hour_glass_pbrnet_trainer_gpu.json │ │ │ │ │ ├── simplified_mousenet_dual_stream_depth_pred_hour_glass_pbrnet_trainer_gpu.json │ │ │ │ │ ├── simplified_mousenet_single_stream_depth_pred_hour_glass_pbrnet_trainer_gpu.json │ │ │ │ │ ├── simplified_mousenet_single_stream_depth_pred_hour_glass_pbrnet_trainer_gpu_load.json │ │ │ │ │ ├── simplified_mousenet_six_stream_depth_pred_hour_glass_pbrnet_trainer_gpu_load.json │ │ │ │ │ └── simplified_mousenet_dual_stream_depth_pred_hour_glass_pbrnet_trainer_gpu_load.json │ │ │ │ │ └── finetune │ │ │ │ │ └── finetune_resnet18_mocov2.json │ │ │ ├── sklearn_transfer_datasets │ │ │ │ ├── __init__.py │ │ │ │ ├── base_dataset.py │ │ │ │ └── test │ │ │ │ │ └── test_dtd_fitter.py │ │ │ ├── neural_mappers │ │ │ │ ├── __init__.py │ │ │ │ ├── factored_neural_map.py │ │ │ │ └── identity_neural_map.py │ │ │ └── loss_functions │ │ │ │ ├── __init__.py │ │ │ │ ├── cross_entropy_loss.py │ │ │ │ ├── depth_pred_loss.py │ │ │ │ ├── autoencoder_loss.py │ │ │ │ └── loss_function_base.py │ │ └── __init__.py │ ├── thingsvision │ │ └── thingsvision │ │ │ └── core │ │ │ ├── __init__.py │ │ │ ├── cka │ │ │ ├── __init__.py │ │ │ └── helpers.py │ │ │ ├── rsa │ │ │ └── __init__.py │ │ │ └── extraction │ │ │ └── __init__.py │ ├── implicitdeclaration_similarity │ │ ├── metric │ │ │ └── __init__.py │ │ └── __init__.py │ ├── stir │ │ └── stir │ │ │ ├── __init__.py │ │ │ └── model │ │ │ ├── cifar_models │ │ │ └── __init__.py │ │ │ └── tools │ │ │ ├── image_object.py │ │ │ ├── custom_modules.py │ │ │ └── constants.py │ ├── brainscore │ │ ├── brainscore │ │ │ ├── submission │ │ │ │ ├── __init__.py │ │ │ │ ├── brainscore_submission.png │ │ │ │ └── database.py │ │ │ ├── benchmarks │ │ │ │ └── README.md │ │ │ ├── metrics │ │ │ │ ├── accuracy.py │ │ │ │ └── anatomy.py │ │ │ └── entrypoint.py │ │ └── brainio │ │ │ └── __init__.py │ ├── imd │ │ └── __init__.py │ ├── net2brain │ │ └── __init__.py │ ├── pytorch_model_compare │ │ └── __init__.py │ ├── contrasim │ │ └── contrasim │ │ │ ├── requirements.txt │ │ │ ├── images │ │ │ ├── image_caption.png │ │ │ ├── multilingual.png │ │ │ └── layer_prediction.png │ │ │ ├── models.py │ │ │ └── LICENSE │ ├── rtd │ │ ├── rtd │ │ │ ├── __init__.py │ │ │ ├── cka.py │ │ │ └── svcca.py │ │ └── __init__.py │ ├── drfrankenstein │ │ ├── src │ │ │ └── comparators │ │ │ │ └── compare_functions │ │ │ │ ├── l2.py │ │ │ │ ├── lr.py │ │ │ │ ├── lr_torch.py │ │ │ │ ├── cca_torch.py │ │ │ │ ├── cca.py │ │ │ │ ├── ls_orth.py │ │ │ │ ├── ls_sum.py │ │ │ │ ├── __init__.py │ │ │ │ └── ps_inv.py │ │ └── __init__.py │ ├── gs │ │ └── __init__.py │ ├── yuanli2333 │ │ └── __init__.py │ ├── subspacematch │ │ ├── score.py │ │ └── __init__.py │ ├── ensd │ │ ├── __init__.py │ │ └── ENSD_Tutorial.py │ ├── unsupervised_analysis │ │ └── __init__.py │ ├── diffscore │ │ └── __init__.py │ ├── pyrcca │ │ └── __init__.py │ ├── xrsa_awes │ │ └── __init__.py │ ├── nn_similarity_index │ │ └── __init__.py │ ├── fsd │ │ └── __init__.py │ ├── llm_repsim │ │ ├── llmcomp │ │ │ └── measures │ │ │ │ ├── rsm_norm_difference.py │ │ │ │ ├── cka.py │ │ │ │ └── procrustes.py │ │ └── __init__.py │ ├── modelsym │ │ └── __init__.py │ ├── neuroaimetrics │ │ └── __init__.py │ ├── survey_measures │ │ └── __init__.py │ ├── sim_metric │ │ ├── __init__.py │ │ └── utils.py │ ├── __init__.py │ ├── resi │ │ └── __init__.py │ └── deepdive │ │ └── __init__.py └── __init__.py ├── figures ├── measures.pdf ├── measures.png ├── metric_vs_repo_heatmap.pdf └── metric_vs_repo_heatmap.png ├── tests └── test_measures.py └── LICENSE /similarity/registry/nnsrm_neurips18/qmvpa/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/core/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /similarity/registry/thingsvision/thingsvision/core/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /similarity/registry/implicitdeclaration_similarity/metric/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/neural_data/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /similarity/registry/stir/stir/__init__.py: -------------------------------------------------------------------------------- 1 | # from stir.stir import STIR -------------------------------------------------------------------------------- /similarity/registry/thingsvision/thingsvision/core/cka/__init__.py: -------------------------------------------------------------------------------- 1 | from .helpers import get_cka 2 | -------------------------------------------------------------------------------- /figures/measures.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nacloos/similarity-repository/HEAD/figures/measures.pdf -------------------------------------------------------------------------------- /figures/measures.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nacloos/similarity-repository/HEAD/figures/measures.png -------------------------------------------------------------------------------- /similarity/registry/stir/stir/model/cifar_models/__init__.py: -------------------------------------------------------------------------------- 1 | from .resnet import * 2 | from .vgg import * 3 | -------------------------------------------------------------------------------- /figures/metric_vs_repo_heatmap.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nacloos/similarity-repository/HEAD/figures/metric_vs_repo_heatmap.pdf -------------------------------------------------------------------------------- /figures/metric_vs_repo_heatmap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nacloos/similarity-repository/HEAD/figures/metric_vs_repo_heatmap.png -------------------------------------------------------------------------------- /similarity/registry/brainscore/brainscore/submission/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Score model submissions on Brain-Score benchmarks. 3 | """ -------------------------------------------------------------------------------- /similarity/registry/imd/__init__.py: -------------------------------------------------------------------------------- 1 | import similarity 2 | import msid 3 | 4 | 5 | similarity.register("imd/imd", msid.msid_score) -------------------------------------------------------------------------------- /similarity/registry/thingsvision/thingsvision/core/rsa/__init__.py: -------------------------------------------------------------------------------- 1 | from .helpers import compute_rdm, correlate_rdms, plot_rdm 2 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/models/cifar_models/__init__.py: -------------------------------------------------------------------------------- 1 | from .resnet import * 2 | from .models_64x64 import * 3 | -------------------------------------------------------------------------------- /similarity/registry/net2brain/__init__.py: -------------------------------------------------------------------------------- 1 | # https://github.com/cvai-roig-lab/Net2Brain 2 | # TODO: seems difficult to extract code for rsa -------------------------------------------------------------------------------- /similarity/registry/pytorch_model_compare/__init__.py: -------------------------------------------------------------------------------- 1 | # https://github.com/AntixK/PyTorch-Model-Compare 2 | # TODO: difficult to extract cka code 3 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/other_datasets/__init__.py: -------------------------------------------------------------------------------- 1 | from .pbrnet_depth import * 2 | from .dmlocomotion_index import * 3 | -------------------------------------------------------------------------------- /similarity/registry/contrasim/contrasim/requirements.txt: -------------------------------------------------------------------------------- 1 | datasets==2.10.1 2 | numpy==1.24.2 3 | Pillow==9.4.0 4 | requests==2.28.2 5 | torch==2.0.0 6 | transformers==4.27.4 7 | -------------------------------------------------------------------------------- /similarity/registry/rtd/rtd/__init__.py: -------------------------------------------------------------------------------- 1 | from .barcodes import calc_embed_dist 2 | from .barcodes import plot_barcodes 3 | from .barcodes import barc2array 4 | from .barcodes import rtd 5 | -------------------------------------------------------------------------------- /similarity/registry/contrasim/contrasim/images/image_caption.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nacloos/similarity-repository/HEAD/similarity/registry/contrasim/contrasim/images/image_caption.png -------------------------------------------------------------------------------- /similarity/registry/contrasim/contrasim/images/multilingual.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nacloos/similarity-repository/HEAD/similarity/registry/contrasim/contrasim/images/multilingual.png -------------------------------------------------------------------------------- /similarity/registry/brainscore/brainio/__init__.py: -------------------------------------------------------------------------------- 1 | from .fetch import get_assembly, get_stimulus_set 2 | from .lookup import get_catalog, list_stimulus_sets, list_assemblies, list_catalogs 3 | 4 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/custom_heads/__init__.py: -------------------------------------------------------------------------------- 1 | from .custom_head_base import * 2 | from .rotnet_alexnet_head import * 3 | from .linear_readout import * 4 | -------------------------------------------------------------------------------- /similarity/registry/contrasim/contrasim/images/layer_prediction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nacloos/similarity-repository/HEAD/similarity/registry/contrasim/contrasim/images/layer_prediction.png -------------------------------------------------------------------------------- /similarity/registry/brainscore/brainscore/submission/brainscore_submission.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nacloos/similarity-repository/HEAD/similarity/registry/brainscore/brainscore/submission/brainscore_submission.png -------------------------------------------------------------------------------- /similarity/registry/drfrankenstein/src/comparators/compare_functions/l2.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | 4 | def l2(x1, x2): 5 | x1 = x1.flatten() 6 | x2 = x2.flatten() 7 | distance = np.mean((x1 - x2) ** 2) 8 | 9 | return distance 10 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/sklearn_transfer_datasets/__init__.py: -------------------------------------------------------------------------------- 1 | from .base_dataset import * 2 | from .hvm_dataset import * 3 | from .dtd_dataset import * 4 | from .base_fitter import * 5 | from .hvm_fitter import * 6 | from .dtd_fitter import * 7 | 8 | -------------------------------------------------------------------------------- /similarity/registry/thingsvision/thingsvision/core/extraction/__init__.py: -------------------------------------------------------------------------------- 1 | from .helpers import ( 2 | center_features, 3 | create_custom_extractor, 4 | create_model_extractor, 5 | get_extractor, 6 | get_extractor_from_model, 7 | normalize_features, 8 | ) 9 | -------------------------------------------------------------------------------- /similarity/registry/gs/__init__.py: -------------------------------------------------------------------------------- 1 | import similarity 2 | 3 | similarity.register( 4 | "measure/gs", 5 | { 6 | "github": "https://github.com/KhrulkovV/geometry-score", 7 | "paper": "khrulkov2018" 8 | } 9 | ) 10 | 11 | # was not able to install dependencies -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/neural_mappers/__init__.py: -------------------------------------------------------------------------------- 1 | from .correlation_neural_map import * 2 | from .pls_neural_map import * 3 | from .factored_neural_map import * 4 | from .neural_map_base import * 5 | from .pipeline_neural_map import * 6 | from .identity_neural_map import * 7 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/imagenet_datasets/__init__.py: -------------------------------------------------------------------------------- 1 | from .imagenet_base import * 2 | from .imagenet_rotation import * 3 | from .imagenet_contrastive import * 4 | from .imagenet_relative_location import * 5 | from .imagenet_supervised import * 6 | from .imagenet_index import * 7 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/sklearn_transfer_datasets/base_dataset.py: -------------------------------------------------------------------------------- 1 | __all__ = ["BaseDataset"] 2 | 3 | class BaseDataset: 4 | def __init__(self): 5 | pass 6 | 7 | def get_name(self): 8 | return self.name 9 | 10 | def get_dataloader(self): 11 | raise NotImplementedError 12 | 13 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/sklearn_transfer_datasets/test/test_dtd_fitter.py: -------------------------------------------------------------------------------- 1 | from mouse_vision.sklearn_transfer_datasets import DTDFitter 2 | 3 | # Model: "simplified_mousenet_single_stream" 4 | model_name = "simplified_mousenet_single_stream" 5 | bf = DTDFitter(model_name) 6 | data = bf.fit("categorization", "avgpool") 7 | 8 | -------------------------------------------------------------------------------- /similarity/registry/yuanli2333/__init__.py: -------------------------------------------------------------------------------- 1 | import similarity 2 | from .CKA import linear_CKA 3 | 4 | similarity.register( 5 | "measure/yuanli2333", 6 | { 7 | "github": "https://github.com/yuanli2333/CKA-Centered-Kernel-Alignment" 8 | } 9 | ) 10 | 11 | similarity.register( 12 | "measure/yuanli2333/cka", 13 | linear_CKA, 14 | ) -------------------------------------------------------------------------------- /similarity/registry/subspacematch/score.py: -------------------------------------------------------------------------------- 1 | from .match_utils import find_maximal_epsilon, find_maximal_match 2 | 3 | 4 | def maximum_match_score(X, Y, epsilon): 5 | # Adapted from https://github.com/MeckyWu/subspace-match/blob/master/calc_max_match.py 6 | idx_X, idx_Y = find_maximal_match(X, Y, epsilon) 7 | mms = float(len(idx_X) + len(idx_Y)) / (len(X) + len(Y)) 8 | return mms 9 | -------------------------------------------------------------------------------- /similarity/registry/ensd/__init__.py: -------------------------------------------------------------------------------- 1 | # https://github.com/camillerb/ENSD 2 | # https://www.biorxiv.org/content/10.1101/2023.07.27.550815v1.full.pdf 3 | from .ENSD_Tutorial import ENSD, computeDist 4 | 5 | import similarity 6 | 7 | 8 | similarity.register("ensd/ensd", ENSD, preprocessing=["center_columns", "transpose"]) 9 | similarity.register("ensd/computeDist", computeDist, preprocessing=["center_columns", "transpose"]) 10 | -------------------------------------------------------------------------------- /similarity/registry/unsupervised_analysis/__init__.py: -------------------------------------------------------------------------------- 1 | # https://github.com/mgwillia/unsupervised-analysis 2 | # https://arxiv.org/pdf/2206.08347 3 | from .experiments.calculate_cka import CudaCKA 4 | 5 | import similarity 6 | 7 | similarity.register( 8 | "unsupervised_analysis/cka", 9 | lambda X, Y: CudaCKA(device="cpu").linear_CKA(X, Y), 10 | preprocessing=["array_to_tensor"], 11 | postprocessing=["tensor_to_float"] 12 | ) 13 | -------------------------------------------------------------------------------- /similarity/registry/brainscore/brainscore/benchmarks/README.md: -------------------------------------------------------------------------------- 1 | # Brain-Score Benchmarks 2 | 3 | **File structure**: One file per assembly with all the benchmarks inside. 4 | This file contains the loading of the assembly (with eventual processing) and the benchmarks. 5 | 6 | **Versioning**: Each benchmark is numbered by a version number. 7 | Whenever the benchmark produces different scores, the version number is increased. 8 | -------------------------------------------------------------------------------- /similarity/registry/diffscore/__init__.py: -------------------------------------------------------------------------------- 1 | from .diffscore.analysis.similarity_measures import measures 2 | 3 | import similarity 4 | 5 | 6 | for k, v in measures.items(): 7 | # TODO 8 | if not ("measure/" in k): 9 | continue 10 | 11 | # k: "measure/{name}" 12 | similarity.register( 13 | f"diffscore/{k.split('/')[1]}", 14 | v, 15 | preprocessing=["array_to_tensor"], 16 | postprocessing=["tensor_to_float"] 17 | ) 18 | -------------------------------------------------------------------------------- /similarity/registry/rtd/rtd/cka.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from math import sqrt 3 | 4 | def hsic(P, Q): 5 | PPt = P @ np.transpose(P) 6 | QQt = Q @ np.transpose(Q) 7 | n = P.shape[0] 8 | E = np.eye(n) - np.ones((n, n)) / n 9 | 10 | hsic = np.trace(PPt @ E @ QQt @ E) / (n - 1) ** 2 11 | 12 | return hsic 13 | 14 | def cka(P, Q): 15 | pp = sqrt(hsic(P, P) + 1e-10) 16 | qq = sqrt(hsic(Q, Q) + 1e-10) 17 | return hsic(P, Q) / pp / qq 18 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/scripts/make_tpus.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | for i in `seq $1 $2`; do 3 | printf -v tpu_name "mv-tpu-%02d" $i 4 | address="10.$(($i)).200.0/29" 5 | echo "attempting to create $tpu_name at $address" 6 | gcloud compute tpus create $tpu_name --accelerator-type=${3-"v3-8"} --zone=${4-"us-central1-b"} --range=$address --network=default --version=pytorch-1.6 & 7 | done 8 | 9 | wait 10 | echo "all tpus created successfully" 11 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/loss_functions/__init__.py: -------------------------------------------------------------------------------- 1 | from .cross_entropy_loss import * 2 | from .instance_discrimination_loss import * 3 | from .simclr_loss import * 4 | from .relative_location_loss import * 5 | from .mocov2_loss import * 6 | from .finetune_loss import * 7 | from .rotnet_loss import * 8 | from .simsiam_loss import * 9 | from .autoencoder_loss import * 10 | from .depth_pred_loss import * 11 | from .barlow_twins_loss import * 12 | from .vicreg_loss import * 13 | -------------------------------------------------------------------------------- /similarity/__init__.py: -------------------------------------------------------------------------------- 1 | # important to import registration first so that make and register can be imported from similarity 2 | from .registration import ( 3 | make, 4 | register, 5 | all_measures, 6 | all_papers, 7 | match, 8 | wrap_measure, 9 | ) 10 | 11 | from .types import IdType 12 | 13 | from . import processing 14 | from . import registry 15 | from . import papers 16 | 17 | from .standardization import register_standardized_measures 18 | register_standardized_measures() 19 | -------------------------------------------------------------------------------- /similarity/registry/brainscore/brainscore/metrics/accuracy.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | from brainscore.metrics import Score 4 | 5 | 6 | class Accuracy: 7 | def __call__(self, source, target): 8 | values = source == target 9 | center = np.mean(values) 10 | error = np.std(values) 11 | 12 | score = Score([center, error], coords={'aggregation': ['center', 'error']}, dims=('aggregation',)) 13 | score.attrs[Score.RAW_VALUES_KEY] = values 14 | return score 15 | -------------------------------------------------------------------------------- /similarity/registry/pyrcca/__init__.py: -------------------------------------------------------------------------------- 1 | # https://github.com/gallantlab/pyrcca 2 | import numpy as np 3 | from .rcca.rcca import CCA 4 | 5 | import similarity 6 | 7 | 8 | # TODO: register other variants 9 | # TODO: eigh in rcca.py raises error 10 | def score(X, Y): 11 | cca = CCA() 12 | X = X - X.mean(0) 13 | Y = Y - Y.mean(0) 14 | cca.train([X, Y]) 15 | scores = cca.validate([X, Y]) 16 | return np.mean([np.mean(s) for s in scores]) 17 | 18 | similarity.register("pyrcca/cca", score) 19 | -------------------------------------------------------------------------------- /tests/test_measures.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | import similarity 4 | 5 | def test_measures(): 6 | # some measures raise error if second dim is less than 25 7 | X = np.random.rand(30, 25) 8 | Y = np.random.rand(30, 25) 9 | 10 | measures = similarity.make("measure/*/*") 11 | for measure_id, measure in measures.items(): 12 | print(measure_id) 13 | score = measure(X, Y) 14 | print(f"score: {score}") 15 | 16 | 17 | if __name__ == "__main__": 18 | test_measures() 19 | -------------------------------------------------------------------------------- /similarity/registry/drfrankenstein/src/comparators/compare_functions/lr.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | 4 | def rearrange_activations(activations): 5 | batch_size = activations.shape[0] 6 | flat_activations = activations.reshape(batch_size, -1) 7 | return flat_activations 8 | 9 | 10 | def lr(x1, x2): 11 | x1_flat, x2_flat = rearrange_activations(x1), rearrange_activations(x2) 12 | q2, r2 = np.linalg.qr(x2_flat) 13 | return (np.linalg.norm(q2.T @ x1_flat)) ** 2 / (np.linalg.norm(x1_flat)) ** 2 14 | -------------------------------------------------------------------------------- /similarity/registry/drfrankenstein/src/comparators/compare_functions/lr_torch.py: -------------------------------------------------------------------------------- 1 | import torch 2 | 3 | 4 | def rearrange_activations(activations): 5 | batch_size = activations.shape[0] 6 | flat_activations = activations.view(batch_size, -1) 7 | return flat_activations 8 | 9 | 10 | def lr(x1, x2): 11 | x1_flat, x2_flat = rearrange_activations(x1), rearrange_activations(x2) 12 | q2, r2 = torch.linalg.qr(x2_flat) 13 | return (torch.linalg.norm(q2.T @ x1_flat)) ** 2 / (torch.linalg.norm(x1_flat)) ** 2 14 | -------------------------------------------------------------------------------- /similarity/registry/xrsa_awes/__init__.py: -------------------------------------------------------------------------------- 1 | # https://github.com/uds-lsv/xRSA-AWEs 2 | # https://arxiv.org/pdf/2109.10179 3 | from functools import partial 4 | from .CKA import feature_space_linear_cka 5 | 6 | import similarity 7 | 8 | 9 | similarity.register( 10 | "measure/xrsa_awes/feature_space_linear_cka", 11 | feature_space_linear_cka, 12 | ) 13 | 14 | 15 | similarity.register( 16 | "measure/xrsa_awes/feature_space_linear_cka-debiased_True", 17 | partial(feature_space_linear_cka, debiased=True), 18 | ) 19 | -------------------------------------------------------------------------------- /similarity/registry/drfrankenstein/src/comparators/compare_functions/cca_torch.py: -------------------------------------------------------------------------------- 1 | import torch 2 | 3 | 4 | def rearrange_activations(activations): 5 | batch_size = activations.shape[0] 6 | flat_activations = activations.view(batch_size, -1) 7 | return flat_activations 8 | 9 | 10 | def cca(x1, x2): 11 | x1_flat, x2_flat = rearrange_activations(x1), rearrange_activations(x2) 12 | 13 | q1, _ = torch.qr(x1_flat) 14 | q2, _ = torch.qr(x2_flat) 15 | 16 | return (torch.norm(q2.T @ q1)) ** 2 / q1.shape[1] 17 | -------------------------------------------------------------------------------- /similarity/registry/drfrankenstein/src/comparators/compare_functions/cca.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | 4 | def rearrange_activations(activations): 5 | batch_size = activations.shape[0] 6 | flat_activations = activations.reshape(batch_size, -1) 7 | return flat_activations 8 | 9 | 10 | def cca(x1, x2): 11 | x1_flat, x2_flat = rearrange_activations(x1), rearrange_activations(x2) 12 | 13 | q1, _ = np.linalg.qr(x1_flat) 14 | q2, _ = np.linalg.qr(x2_flat) 15 | 16 | return (np.linalg.norm(q2.T @ q1)) ** 2 / q1.shape[1] 17 | -------------------------------------------------------------------------------- /similarity/registry/stir/stir/model/tools/image_object.py: -------------------------------------------------------------------------------- 1 | import joblib, pickle 2 | 3 | 4 | def save_object(index, image, label, path): 5 | obj = ImageObject(index, image, label) 6 | with open(path, 'wb') as handle: 7 | joblib.dump(obj, handle, protocol=pickle.HIGHEST_PROTOCOL) 8 | 9 | def load_object(path): 10 | return joblib.load(path) 11 | 12 | 13 | class ImageObject: 14 | 15 | def __init__(self, index, image, label): 16 | self.index = index 17 | self.image = image 18 | self.label = label 19 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/custom_heads/custom_head_base.py: -------------------------------------------------------------------------------- 1 | import torch.nn as nn 2 | 3 | __all__ = ["CustomHeadBase"] 4 | 5 | class CustomHeadBase(nn.Module): 6 | def __init__(self): 7 | super(CustomHeadBase, self).__init__() 8 | 9 | # Create the classifier head for transfer learning 10 | self.classifier = nn.Sequential() 11 | 12 | def initialize_classifier(self): 13 | raise NotImplementedError 14 | 15 | def forward(self, x): 16 | return self.classifier(x) 17 | 18 | -------------------------------------------------------------------------------- /similarity/registry/subspacematch/__init__.py: -------------------------------------------------------------------------------- 1 | from functools import partial 2 | import similarity 3 | 4 | from . import score 5 | 6 | 7 | similarity.register( 8 | "measure/subspacematch", 9 | { 10 | "paper_id": "wang2018", 11 | "github": "https://github.com/MeckyWu/subspace-match" 12 | } 13 | ) 14 | 15 | similarity.register( 16 | "measure/subspacematch/max_match", 17 | # vary epsilon? 18 | partial(score.maximum_match_score, epsilon=0.25), 19 | preprocessing=[ 20 | "reshape2d", 21 | "transpose" 22 | ] 23 | ) -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/neural_mappers/factored_neural_map.py: -------------------------------------------------------------------------------- 1 | from . import neural_map_base as nm 2 | 3 | __all__ = ["FactoredNeuralMap"] 4 | 5 | class FactoredNeuralMap(nm.NeuralMapBase): 6 | """ 7 | This is the implementation for performing a factored readout fitting procedure 8 | between source and target. Klindt et al. 2017. 9 | """ 10 | def __init__(self): 11 | super(FactoredNeuralMap, self).__init__() 12 | 13 | def fit(self, X, Y): 14 | pass 15 | 16 | def predict(self, X): 17 | pass 18 | 19 | 20 | -------------------------------------------------------------------------------- /similarity/registry/drfrankenstein/__init__.py: -------------------------------------------------------------------------------- 1 | # https://github.com/renyi-ai/drfrankenstein 2 | from functools import partial 3 | from .src.comparators.compare_functions import cca, cka, correlation, l2, lr 4 | 5 | import similarity 6 | 7 | 8 | similarity.register("drfrankenstein/cca", cca, preprocessing=["center_columns"]) 9 | similarity.register("drfrankenstein/cka", cka) 10 | 11 | 12 | # TODO: register distance 13 | # similarity.register( 14 | # "drfrankenstein/l2", 15 | # l2, 16 | # ) 17 | 18 | # similarity.register( 19 | # "drfrankenstein/lr", 20 | # lr, 21 | # ) 22 | -------------------------------------------------------------------------------- /similarity/registry/drfrankenstein/src/comparators/compare_functions/ls_orth.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | from src.comparators.compare_functions.ps_inv import rearrange_activations 4 | 5 | 6 | def ls_orth(x1, x2): 7 | if not x1.shape[0] == x2.shape[0]: 8 | raise ValueError('Spatial size of compared neurons must match when ' \ 9 | 'calculating psuedo inverse matrix.') 10 | 11 | x1_flat = rearrange_activations(x1) 12 | x2_flat = rearrange_activations(x2) 13 | 14 | U, S, V = np.linalg.svd(x1_flat.T @ x2_flat) 15 | w = (U @ V).T 16 | b = np.zeros(x1_flat.shape[1]) 17 | 18 | return {'w': w, 'b': b} 19 | -------------------------------------------------------------------------------- /similarity/registry/implicitdeclaration_similarity/__init__.py: -------------------------------------------------------------------------------- 1 | # https://github.com/implicitDeclaration/similarity 2 | from functools import partial 3 | from .metric.CKA import linear_CKA, sparse_HSIC 4 | 5 | import similarity 6 | 7 | 8 | similarity.register("implicitdeclaration_similarity/linear_cka", linear_CKA) 9 | 10 | 11 | # TODO 12 | topk = 500 13 | sigma = 1.0 14 | kernels = ["linear", "rbf", "cos"] 15 | for kernel in kernels: 16 | name = f"{kernel}_sparse_HSIC" 17 | similarity.register( 18 | f"measure/implicitdeclaration_similarity/{name}", 19 | partial(sparse_HSIC, topk=topk, kernel=kernel, sigma=sigma), 20 | ) 21 | 22 | -------------------------------------------------------------------------------- /similarity/registry/nn_similarity_index/__init__.py: -------------------------------------------------------------------------------- 1 | from functools import partial 2 | 3 | import similarity 4 | from . import utils 5 | 6 | 7 | # similarity.register( 8 | # "measure/nn_similarity_index", 9 | # { 10 | # "paper_id": "tang2020", 11 | # "github": "https://github.com/amzn/xfer/blob/master/nn_similarity_index" 12 | # } 13 | # ) 14 | 15 | 16 | similarity.register("nn_similarity_index/euclidean", utils.euclidean) 17 | similarity.register("nn_similarity_index/cka", utils.cka) 18 | similarity.register("nn_similarity_index/nbs", utils.nbs) 19 | similarity.register("nn_similarity_index/bures_distance", utils.bures_distance) 20 | -------------------------------------------------------------------------------- /similarity/registry/brainscore/brainscore/entrypoint.py: -------------------------------------------------------------------------------- 1 | """ 2 | Point brainio to the local lookup file. 3 | """ 4 | 5 | import logging 6 | from pathlib import Path 7 | 8 | from brainio.catalogs import Catalog 9 | 10 | _logger = logging.getLogger(__name__) 11 | 12 | 13 | def brainio_brainscore(): 14 | path = Path(__file__).parent / "lookup.csv" 15 | _logger.debug(f"Loading lookup from {path}") 16 | print(f"Loading lookup from {path}") # print because logging usually isn't set up at this point during import 17 | catalog = Catalog.from_files("brainio_brainscore", path) # setup.py is where the entrypoint's published name is set 18 | return catalog 19 | 20 | 21 | -------------------------------------------------------------------------------- /similarity/registry/contrasim/contrasim/models.py: -------------------------------------------------------------------------------- 1 | import torch.nn as nn 2 | import torch.nn.functional as F 3 | 4 | 5 | class Encoder(nn.Module): 6 | 7 | def __init__(self, in_dim, out_dim, mid_layers): 8 | super(Encoder, self).__init__() 9 | layers = [nn.Linear(in_dim, mid_layers[0]), nn.ReLU()] 10 | for i, layer_dim in zip(range(1, len(mid_layers)), mid_layers[1:]): 11 | layers.append(nn.Linear(mid_layers[i - 1], layer_dim)) 12 | layers.append(nn.ReLU()) 13 | layers.append(nn.Linear(mid_layers[-1], out_dim)) 14 | self.net = nn.Sequential(*layers) 15 | 16 | def forward(self, vector): 17 | return F.normalize(self.net(vector), dim=1) -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/models/imagenet_models/__init__.py: -------------------------------------------------------------------------------- 1 | from .resnet import * 2 | from .vgg import * 3 | from .alexnet import * 4 | from .alexnet_dict import * 5 | from .squeezenet import * 6 | from .mobilenet import * 7 | from .mnasnet import * 8 | from .googlenet import * 9 | from .inception import * 10 | from .densenet import * 11 | from .shufflenetv2 import * 12 | from .xception import * 13 | from .nasnet_mobile import * 14 | from .shi_mousenet import * 15 | from .parallel_stream_mousenet import * 16 | from .alexnet_rotnet import * 17 | from .alexnet_two import * 18 | from .alexnet_three import * 19 | from .alexnet_four import * 20 | from .alexnet_five import * 21 | from .alexnet_six import * 22 | -------------------------------------------------------------------------------- /similarity/registry/rtd/__init__.py: -------------------------------------------------------------------------------- 1 | # https://github.com/IlyaTrofimov/RTD 2 | from .rtd import cka, cca_core, pwcca, svcca 3 | 4 | import similarity 5 | 6 | 7 | similarity.register("rtd/cka", cka.cka, preprocessing=["center_columns"]) 8 | 9 | def pwcca_measure(X, Y): 10 | # original function returns a tuple 11 | return pwcca.compute_pwcca(X, Y)[0] 12 | 13 | # TODO: numpy.linalg.LinAlgError: SVD did not converge 14 | similarity.register( 15 | "rtd/pwcca", 16 | pwcca_measure, 17 | preprocessing=["transpose"] 18 | ) 19 | 20 | similarity.register( 21 | "rtd/svcca", 22 | svcca.svcca, 23 | preprocessing=["transpose"] 24 | ) 25 | 26 | 27 | similarity.register("hsic/rtd/gretton", cka.hsic) 28 | -------------------------------------------------------------------------------- /similarity/registry/fsd/__init__.py: -------------------------------------------------------------------------------- 1 | # https://github.com/maroo-sky/FSD 2 | from collections import namedtuple 3 | from functools import partial 4 | 5 | from .metrics.LayerWiseMetrics import linear_HSIC, linear_CKA_loss 6 | 7 | import similarity 8 | 9 | # TODO: what is RKD? 10 | 11 | args = namedtuple('Args', ['device'])('cpu') 12 | 13 | 14 | similarity.register( 15 | "fsd/linear_CKA_loss", 16 | partial(linear_CKA_loss, args=args), 17 | preprocessing=["array_to_tensor"], 18 | postprocessing=["tensor_to_float"] 19 | ) 20 | 21 | 22 | similarity.register( 23 | "hsic/fsd/linear", 24 | partial(linear_HSIC, args=args), 25 | preprocessing=["array_to_tensor"], 26 | postprocessing=["tensor_to_float"] 27 | ) 28 | -------------------------------------------------------------------------------- /similarity/registry/llm_repsim/llmcomp/measures/rsm_norm_difference.py: -------------------------------------------------------------------------------- 1 | from typing import Union 2 | 3 | import numpy as np 4 | import numpy.typing as npt 5 | import scipy.spatial.distance 6 | import torch 7 | 8 | from llmcomp.measures.utils import to_numpy_if_needed 9 | 10 | 11 | def rsm_norm_diff( 12 | R: Union[torch.Tensor, npt.NDArray], 13 | Rp: Union[torch.Tensor, npt.NDArray], 14 | inner: str = "euclidean", 15 | ) -> float: 16 | R, Rp = to_numpy_if_needed(R, Rp) 17 | S = scipy.spatial.distance.pdist(R, inner) # type:ignore 18 | Sp = scipy.spatial.distance.pdist(Rp, inner) # type:ignore 19 | return float( 20 | np.linalg.norm(S - Sp, ord=2) 21 | ) # ord=2 because pdist gives vectorized lower triangle of RSM 22 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/loss_functions/cross_entropy_loss.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import torch.nn as nn 3 | import numpy as np 4 | 5 | from mouse_vision.loss_functions.loss_function_base import LossFunctionBase 6 | 7 | __all__ = ["CrossEntropyLoss"] 8 | 9 | 10 | class CrossEntropyLoss(LossFunctionBase): 11 | def __init__(self, reduction="mean"): 12 | super(CrossEntropyLoss, self).__init__() 13 | self.reduction = reduction 14 | self.loss = nn.CrossEntropyLoss(reduction=self.reduction) 15 | 16 | def forward(self, model, inp, target, **kwargs): 17 | preds = model(inp) 18 | loss = self.loss(preds, target) 19 | return loss, preds 20 | 21 | 22 | if __name__ == "__main__": 23 | c = CrossEntropyLoss(mean=[0, 0, 0], std=[1, 1, 1]) 24 | -------------------------------------------------------------------------------- /similarity/registry/modelsym/__init__.py: -------------------------------------------------------------------------------- 1 | # https://github.com/pnnl/modelsym 2 | from functools import partial 3 | 4 | from .model_symmetries.alignment.alignment import ( 5 | wreath_cka, 6 | wreath_procrustes, 7 | ortho_cka, 8 | ortho_procrustes 9 | ) 10 | 11 | import similarity 12 | 13 | 14 | register = partial( 15 | similarity.register, 16 | preprocessing=["array_to_tensor"], 17 | postprocessing=["tensor_to_float"] 18 | ) 19 | 20 | register("modelsym/wreath_cka", lambda X, Y: wreath_cka([X[None]], [Y[None]])) 21 | register("modelsym/wreath_procrustes", lambda X, Y: wreath_procrustes([X[None]], [Y[None]])) 22 | register("modelsym/ortho_cka", lambda X, Y: ortho_cka([X[None]], [Y[None]])) 23 | register("modelsym/ortho_procrustes", lambda X, Y: ortho_procrustes([X[None]], [Y[None]])) 24 | -------------------------------------------------------------------------------- /similarity/registry/rtd/rtd/svcca.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from . import cca_core 3 | 4 | def get_sv(acts1): 5 | cb1 = acts1 - np.mean(acts1, axis=0, keepdims=True) 6 | 7 | # Perform SVD 8 | Ub1, sb1, Vb1 = np.linalg.svd(cb1, full_matrices=False) 9 | 10 | d = get_threshold(sb1) 11 | svb1 = np.dot(sb1[:d]*np.eye(d), Vb1[:d]) 12 | 13 | return svb1 14 | 15 | def get_threshold(sb1): 16 | for d in range(sb1.shape[0]): 17 | if np.sum(sb1[0:d]) > 0.99 * np.sum(sb1): 18 | return d 19 | 20 | return sb1.shape[0] 21 | 22 | def svcca(acts1, acts2): 23 | svb1 = get_sv(acts1) 24 | svb2 = get_sv(acts2) 25 | 26 | svcca_baseline = cca_core.get_cca_similarity(svb1, svb2, epsilon=1e-10, verbose=False) 27 | return (np.mean(svcca_baseline["cca_coef1"])) 28 | -------------------------------------------------------------------------------- /similarity/registry/stir/stir/model/tools/custom_modules.py: -------------------------------------------------------------------------------- 1 | import torch 2 | from torch import nn 3 | ch = torch 4 | 5 | class FakeReLU(torch.autograd.Function): 6 | @staticmethod 7 | def forward(ctx, input): 8 | return input.clamp(min=0) 9 | 10 | @staticmethod 11 | def backward(ctx, grad_output): 12 | return grad_output 13 | 14 | class FakeReLUM(nn.Module): 15 | def forward(self, x): 16 | return FakeReLU.apply(x) 17 | 18 | class SequentialWithArgs(torch.nn.Sequential): 19 | def forward(self, input, *args, **kwargs): 20 | vs = list(self._modules.values()) 21 | l = len(vs) 22 | for i in range(l): 23 | if i == l-1: 24 | input = vs[i](input, *args, **kwargs) 25 | else: 26 | input = vs[i](input) 27 | return input 28 | -------------------------------------------------------------------------------- /similarity/registry/nnsrm_neurips18/qmvpa/vis.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import matplotlib.pyplot as plt 3 | import seaborn as sns 4 | sns.set(style='white', font_scale=1.3) 5 | 6 | 7 | def show_heatmap(heatmap, k): 8 | # compute a mask 9 | mask = np.zeros(np.shape(heatmap)) 10 | mask[np.triu_indices_from(mask, k=k)] = True 11 | # manage tick frequency 12 | tick_frequency = 10 13 | n_egs = np.shape(heatmap)[0] 14 | n_ticks = n_egs//tick_frequency 15 | # plot it 16 | my_heatmap = sns.heatmap(heatmap, 17 | cmap="viridis", 18 | xticklabels=n_ticks, 19 | yticklabels=n_ticks, 20 | mask=mask, 21 | square=True, 22 | cbar=True) 23 | return my_heatmap 24 | -------------------------------------------------------------------------------- /similarity/registry/brainscore/brainscore/submission/database.py: -------------------------------------------------------------------------------- 1 | import json 2 | import logging 3 | 4 | from peewee import PostgresqlDatabase, SqliteDatabase 5 | 6 | from brainscore.submission.models import database 7 | from brainscore.submission.utils import get_secret 8 | 9 | 10 | def connect_db(db_secret): 11 | if 'sqlite3' not in db_secret: 12 | secret = get_secret(db_secret) 13 | db_configs = json.loads(secret) 14 | postgres = PostgresqlDatabase(db_configs['dbInstanceIdentifier'], 15 | **{'host': db_configs['host'], 'port': 5432, 16 | 'user': db_configs['username'], 'password': db_configs['password']}) 17 | database.initialize(postgres) 18 | else: 19 | sqlite = SqliteDatabase(db_secret) 20 | database.initialize(sqlite) 21 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/loss_functions/depth_pred_loss.py: -------------------------------------------------------------------------------- 1 | import torch.nn as nn 2 | 3 | from mouse_vision.loss_functions.loss_function_base import LossFunctionBase 4 | 5 | 6 | __all__ = ["DepthPredictionHourGlassLoss"] 7 | 8 | 9 | class DepthPredictionHourGlassLoss(LossFunctionBase): 10 | def __init__(self, output_channels=3): 11 | super(DepthPredictionHourGlassLoss, self).__init__() 12 | self.loss = nn.MSELoss(reduction="mean") 13 | self.decoder = nn.Conv2d( 14 | output_channels, 1, kernel_size=3, stride=1, padding=1, bias=False 15 | ) 16 | 17 | def trainable_parameters(self): 18 | return self.decoder.parameters() 19 | 20 | def forward(self, x, output): 21 | depth_pred = self.decoder(x) 22 | loss = 0.5 * self.loss(depth_pred, output) 23 | return loss 24 | -------------------------------------------------------------------------------- /similarity/registry/nnsrm_neurips18/qmvpa/classification.py: -------------------------------------------------------------------------------- 1 | from sklearn.model_selection import GridSearchCV 2 | from sklearn.svm import SVC, LinearSVC 3 | import numpy as np 4 | 5 | 6 | def tune_lsvc(X_train, y_train, param_grid=None): 7 | if param_grid == None: 8 | param_grid = { 9 | 'C': np.logspace(-5, 4, 10) 10 | } 11 | # tune SVM 12 | tuning_svm = LinearSVC( 13 | class_weight='balanced' 14 | ) 15 | tuning_grid = GridSearchCV( 16 | estimator=tuning_svm, param_grid=param_grid, n_jobs=-1 17 | ) 18 | tuning_grid.fit(X_train, y_train) 19 | return tuning_grid.best_estimator_, tuning_grid 20 | 21 | # from sklearn.metrics import confusion_matrix 22 | # cf_mat = confusion_matrix(Ys_test_srm_stkd, 23 | # final_svm.predict(Xs_test_srm_stkd)) 24 | # plt.imshow(cf_mat, cmap='viridis') 25 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/mocov2/test_mocov2_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "mocov2loss_resnet50", 6 | "exp_id": "test_mocov2_exp01_tpu", 7 | "trainer": "MoCov2", 8 | "gpus": null, 9 | "tpu": "mv-tpu-01", 10 | "seed": 1, 11 | "dataloader_workers": 32, 12 | "model": "resnet50_mocov2", 13 | "loss_params": { 14 | "class": "MoCov2Loss", 15 | "model_output_dim": 2048 16 | }, 17 | "optimizer_params": { 18 | "train_batch_size": 256, 19 | "val_batch_size": 1024, 20 | "initial_lr": 0.03, 21 | "momentum": 0.9, 22 | "weight_decay": 1e-4 23 | }, 24 | "num_epochs": 200, 25 | "save_freq": 10, 26 | "resume_checkpoint": null 27 | } 28 | 29 | -------------------------------------------------------------------------------- /similarity/registry/neuroaimetrics/__init__.py: -------------------------------------------------------------------------------- 1 | # https://github.com/anshksoni/NeuroAIMetrics 2 | from functools import partial 3 | from dataclasses import dataclass 4 | import numpy as np 5 | 6 | from .metrics import all_metrics 7 | 8 | import similarity 9 | 10 | 11 | # def make_measure(name): 12 | # def _measure(X: np.ndarray, Y: np.ndarray, **kwargs) -> float: 13 | # score = all_metrics[name](X, Y, **kwargs) 14 | # # score is a list 15 | # score = np.mean(score) 16 | # return float(score) 17 | 18 | # return _measure 19 | 20 | 21 | def measure(X, Y, name, **kwargs): 22 | score = all_metrics[name](X, Y, **kwargs) 23 | # score is a list 24 | return np.mean(score) 25 | 26 | 27 | for name in all_metrics.keys(): 28 | similarity.register( 29 | f"neuroaimetrics/{name}", 30 | partial(measure, name=name) 31 | ) 32 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/__init__.py: -------------------------------------------------------------------------------- 1 | # https://github.com/neuroailab/mouse-vision 2 | import sys 3 | from pathlib import Path 4 | dir_path = Path(__file__).parent 5 | sys.path.append(str(dir_path)) 6 | 7 | from mouse_vision.reliability.metrics import rsa 8 | from mouse_vision.neural_mappers import PLSNeuralMap, CorrelationNeuralMap 9 | 10 | import similarity 11 | 12 | 13 | similarity.register( 14 | "mouse_vision/rsa", 15 | rsa 16 | ) 17 | 18 | 19 | def score(cls, **kwargs): 20 | def _score(X, Y): 21 | pls = cls(**kwargs) 22 | pls.fit(X, Y) 23 | Y_pred = pls.predict(X) 24 | scores = pls.score(Y, Y_pred) 25 | return scores.mean() 26 | return _score 27 | 28 | similarity.register("mouse_vision/PLSNeuralMap", score(PLSNeuralMap, n_components=25)) 29 | similarity.register("mouse_vision/CorrelationNeuralMap", score(CorrelationNeuralMap)) 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/simclr/test_simclr_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "simclrloss_resnet18", 6 | "exp_id": "test_imagenet_tpuexp04", 7 | "trainer": "SimCLR", 8 | "gpus": null, 9 | "tpu": "mv-tpu-01", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "resnet18_simclr_nosyncbn", 13 | "loss_params": { 14 | "class": "SimCLRLoss", 15 | "model_output_dim": 512 16 | }, 17 | "optimizer_params": { 18 | "train_batch_size": 256, 19 | "val_batch_size": 1024, 20 | "initial_lr": 0.3, 21 | "momentum": 0.9, 22 | "weight_decay": 0.000001 23 | }, 24 | "num_epochs": 200, 25 | "save_freq": 10, 26 | "resume_checkpoint": null 27 | } 28 | 29 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/core/default_dirs.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | # Model directories 4 | TORCH_HOME = "/home/nclkong/plos_mouse_vision/mouse-vision" 5 | BASE_DIR = "/home/nclkong/plos_mouse_vision/mouse-vision" 6 | MODEL_SAVE_DIR = os.path.join(BASE_DIR, "model_ckpts") 7 | 8 | # Data directories 9 | NEUROPIX_DATA_PATH_WITH_RELS = os.path.join( 10 | BASE_DIR, "neural_data/mouse_neuropixels_visual_data_with_reliabilities.pkl" 11 | ) 12 | CALCIUM_DATA_PATH_WITH_RELS = os.path.join( 13 | BASE_DIR, "neural_data/mouse_calcium_visual_data_with_reliabilities.pkl" 14 | ) 15 | 16 | # ImageNet data directory: add path to ImageNet 17 | IMAGENET_DATA_DIR = "/data5/chengxuz/imagenet_raw" 18 | 19 | # CIFAR10 data directory: add path to CIFAR10 20 | CIFAR10_DATA_DIR = "" 21 | 22 | # Other datasets (depth prediction, maze navigation) 23 | PBRNET_DATA_DIR = "" 24 | DMLOCOMOTION_DATA_DIR = "" 25 | -------------------------------------------------------------------------------- /similarity/registry/survey_measures/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Code adapted from https://github.com/mklabunde/survey_measures/blob/main/appendix_procrustes.ipynb 3 | """ 4 | import numpy as np 5 | from scipy.linalg import orthogonal_procrustes 6 | 7 | import similarity 8 | 9 | similarity.register( 10 | "measure/mklabunde", 11 | { 12 | "paper_id": "klabunde2023", 13 | "github": "https://github.com/mklabunde/survey_measures" 14 | } 15 | ) 16 | 17 | 18 | @similarity.register( 19 | "survey_measures/procrustes", 20 | preprocessing=[ 21 | "center_columns", 22 | {"id": "zero_padding", "inputs": ["X", "Y"]} 23 | ] 24 | ) 25 | def procrustes(X, Y): 26 | r, scale = orthogonal_procrustes(X, Y) 27 | total_norm = ( 28 | -2 * scale 29 | + np.linalg.norm(X, ord="fro") ** 2 30 | + np.linalg.norm(Y, ord="fro") ** 2 31 | ) 32 | return total_norm -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/vgg16_imagenet_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_vgg16", 6 | "exp_id": "exp0", 7 | "trainer": "SupervisedImageNet", 8 | "gpus": null, 9 | "tpu": "mv-tpu-04", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "vgg16", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.01, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/cifar10/resnet18_cifar10_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "cifar10", 5 | "coll_name": "xentloss_resnet18", 6 | "exp_id": "nathan0", 7 | "trainer": "SupervisedCIFAR10", 8 | "gpus": null, 9 | "tpu": "mv-tpu-03", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "resnet18_cifar10", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 128, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.1, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 2e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/test_imagenet_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_resnet18", 6 | "exp_id": "test_imagenet_expddptpu3", 7 | "trainer": "SupervisedImageNet", 8 | "gpus": null, 9 | "tpu": "mv-tpu-02", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "resnet18", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.1, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 1e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/mocov2/alexnet_bn_mocov2_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "mocov2loss_alexnet_64x64", 6 | "exp_id": "exp1", 7 | "trainer": "MoCov2", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [2], 11 | "ddp_port": 8882, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "alexnet_bn_mocov2_64x64", 15 | "loss_params": { 16 | "class": "MoCov2Loss", 17 | "model_output_dim": 4096 18 | }, 19 | "optimizer_params": { 20 | "train_batch_size": 512, 21 | "val_batch_size": 1024, 22 | "initial_lr": 0.06, 23 | "momentum": 0.9, 24 | "weight_decay": 5e-4 25 | }, 26 | "num_epochs": 200, 27 | "save_freq": 10, 28 | "resume_checkpoint": null 29 | } 30 | 31 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/simclr/alexnet_bn_simclr_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "simclrloss_alexnet_64x64", 6 | "exp_id": "exp1", 7 | "trainer": "SimCLR", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [0], 11 | "ddp_port": 8886, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "alexnet_bn_simclr_64x64", 15 | "loss_params": { 16 | "class": "SimCLRLoss", 17 | "model_output_dim": 4096 18 | }, 19 | "optimizer_params": { 20 | "train_batch_size": 4096, 21 | "val_batch_size": 1024, 22 | "initial_lr": 4.8, 23 | "momentum": 0.9, 24 | "weight_decay": 0.000001 25 | }, 26 | "num_epochs": 200, 27 | "save_freq": 10, 28 | "resume_checkpoint": null 29 | } 30 | 31 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/simclr/test_simclr_trainer_bigbs_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "simclrloss_resnet18", 6 | "exp_id": "test_imagenet_bigbs_tpuexp01", 7 | "trainer": "SimCLR", 8 | "gpus": null, 9 | "tpu": "mv-tpu-02", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "resnet18_simclr_nosyncbn", 13 | "loss_params": { 14 | "class": "SimCLRLoss", 15 | "model_output_dim": 512, 16 | "hidden_dim": 512 17 | }, 18 | "optimizer_params": { 19 | "train_batch_size": 2048, 20 | "val_batch_size": 1024, 21 | "initial_lr": 2.4, 22 | "momentum": 0.9, 23 | "weight_decay": 0.000001 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/vgg16_64x64_imagenet_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_vgg16_64x64_input", 6 | "exp_id": "exp0", 7 | "trainer": "SupervisedImageNet", 8 | "gpus": null, 9 | "tpu": "mv-tpu-03", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "vgg16_64x64_input", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.01, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/simsiam/alexnet_bn_simsiam_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "simsiamloss_alexnet_64x64", 6 | "exp_id": "exp1", 7 | "trainer": "SimSiam", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [3], 11 | "ddp_port": 8851, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "alexnet_bn_simsiam_64x64", 15 | "loss_params": { 16 | "class": "SimSiamLoss", 17 | "model_output_dim": 4096 18 | }, 19 | "optimizer_params": { 20 | "train_batch_size": 512, 21 | "val_batch_size": 1024, 22 | "initial_lr": 0.1, 23 | "momentum": 0.9, 24 | "weight_decay": 1e-4 25 | }, 26 | "num_epochs": 100, 27 | "save_freq": 10, 28 | "resume_checkpoint": null 29 | } 30 | 31 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/cifar10/vgg16_64x64_cifar10_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "cifar10", 5 | "coll_name": "xentloss_vgg16_64x64_input", 6 | "exp_id": "exp0", 7 | "trainer": "SupervisedCIFAR10", 8 | "gpus": null, 9 | "tpu": "mv-tpu-02", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "vgg16_64x64_input_cifar10", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.01, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/alexnet_six_64x64_imagenet_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_alexnet_six_64x64", 6 | "exp_id": "exp0", 7 | "trainer": "SupervisedImageNet", 8 | "gpus": null, 9 | "tpu": "mv-tpu-05", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "alexnet_six_64x64", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.01, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/alexnet_two_64x64_imagenet_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_alexnet_two_64x64", 6 | "exp_id": "exp0", 7 | "trainer": "SupervisedImageNet", 8 | "gpus": null, 9 | "tpu": "mv-tpu-01", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "alexnet_two_64x64", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.01, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/drfrankenstein/src/comparators/compare_functions/ls_sum.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | from src.comparators.compare_functions.ps_inv import rearrange_activations 4 | 5 | 6 | def truncate(x, rank): 7 | x = x.copy() 8 | x[rank:] = 0. 9 | return x 10 | 11 | 12 | def ls_sum(x1, x2): 13 | if not x1.shape[0] == x2.shape[0]: 14 | raise ValueError('Spatial size of compared neurons must match when ' \ 15 | 'calculating ls_rank matrix.') 16 | x1 = rearrange_activations(x1) 17 | x2 = rearrange_activations(x2) 18 | B = np.linalg.pinv(x1) @ x2 19 | Y_hat = x1 @ B 20 | U, S, V = np.linalg.svd(Y_hat, full_matrices=False) 21 | V = V.T 22 | matrices = {} 23 | for rank in [4, 8, 16, len(S)]: 24 | V_r = V[:, :rank].copy() 25 | w = (B @ V_r @ V_r.T).T 26 | b = np.zeros(x1.shape[1]) 27 | matrices[rank] = {'w': w, 'b': b} 28 | return matrices 29 | -------------------------------------------------------------------------------- /similarity/registry/llm_repsim/__init__.py: -------------------------------------------------------------------------------- 1 | # https://github.com/mklabunde/llm_repsim 2 | from functools import partial 3 | import sys 4 | from pathlib import Path 5 | 6 | dir_path = Path(__file__).parent 7 | sys.path.append(str(dir_path)) 8 | 9 | from llmcomp.measures import cka, nearest_neighbor, procrustes, rsa, rsm_norm_difference 10 | 11 | import similarity 12 | 13 | 14 | register = partial(similarity.register, preprocessing=["center_columns"]) 15 | 16 | register("llm_repsim/cka", cka.centered_kernel_alignment) 17 | 18 | register("llm_repsim/jaccard_similarity", nearest_neighbor.jaccard_similarity) 19 | 20 | register("llm_repsim/orthogonal_procrustes", procrustes.orthogonal_procrustes) 21 | register("llm_repsim/aligned_cossim", procrustes.aligned_cossim) 22 | 23 | register("llm_repsim/representational_similarity_analysis", rsa.representational_similarity_analysis) 24 | 25 | register("llm_repsim/rsm_norm_diff", rsm_norm_difference.rsm_norm_diff) 26 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/alexnet_five_64x64_imagenet_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_alexnet_five_64x64", 6 | "exp_id": "exp0", 7 | "trainer": "SupervisedImageNet", 8 | "gpus": null, 9 | "tpu": "mv-tpu-04", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "alexnet_five_64x64", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.01, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/alexnet_four_64x64_imagenet_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_alexnet_four_64x64", 6 | "exp_id": "exp0", 7 | "trainer": "SupervisedImageNet", 8 | "gpus": null, 9 | "tpu": "mv-tpu-03", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "alexnet_four_64x64", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.01, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/cifar10/resnet18_64x64_cifar10_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "cifar10", 5 | "coll_name": "xentloss_resnet18_64x64_input", 6 | "exp_id": "exp0", 7 | "trainer": "SupervisedCIFAR10", 8 | "gpus": null, 9 | "tpu": "mv-tpu-06", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "resnet18_64x64_input_cifar10", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.1, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 1e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/cifar10/shi_mousenet_64x64_cifar10_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "cifar10", 5 | "coll_name": "xentloss_shi_mousenet_64x64_input", 6 | "exp_id": "exp0", 7 | "trainer": "SupervisedCIFAR10", 8 | "gpus": null, 9 | "tpu": "mv-tpu-07", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "shi_mousenet_cifar10", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.01, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/alexnet_three_64x64_imagenet_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_alexnet_three_64x64", 6 | "exp_id": "exp0", 7 | "trainer": "SupervisedImageNet", 8 | "gpus": null, 9 | "tpu": "mv-tpu-02", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "alexnet_three_64x64", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.01, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/simsiam/test_simsiam_trainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/imagenet/mouse_test/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "simsiamloss_resnet18", 6 | "exp_id": "test_imagenet_100epochs_exp01", 7 | "trainer": "SimSiam", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [5,6,7,8], 11 | "ddp_port": 8883, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "resnet18_simsiam", 15 | "loss_params": { 16 | "class": "SimSiamLoss", 17 | "model_output_dim": 512 18 | }, 19 | "optimizer_params": { 20 | "train_batch_size": 512, 21 | "val_batch_size": 1024, 22 | "initial_lr": 0.1, 23 | "momentum": 0.9, 24 | "weight_decay": 1e-4 25 | }, 26 | "num_epochs": 100, 27 | "save_freq": 10, 28 | "resume_checkpoint": null 29 | } 30 | 31 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/cifar10/alexnet_64x64_pool_6_cifar10_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "cifar10", 5 | "coll_name": "xentloss_alexnet_64x64_input_pool_6", 6 | "exp_id": "exp0", 7 | "trainer": "SupervisedCIFAR10", 8 | "gpus": null, 9 | "tpu": "mv-tpu-05", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "alexnet_64x64_input_pool_6_cifar10", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.01, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/cifar10/shi_mousenet_vispor5_64x64_cifar10_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "cifar10", 5 | "coll_name": "xentloss_shi_mousenet_vispor5_64x64_input", 6 | "exp_id": "exp0", 7 | "trainer": "SupervisedCIFAR10", 8 | "gpus": null, 9 | "tpu": "mv-tpu-08", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "shi_mousenet_vispor5_cifar10", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.01, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/mocov2/test_mocov2_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/imagenet/mouse_test/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "mocov2loss_resnet18", 6 | "exp_id": "test_imagenet_exp06", 7 | "trainer": "MoCov2", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [0, 3], 11 | "ddp_port": 8882, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "resnet18_mocov2", 15 | "loss_params": { 16 | "class": "MoCov2Loss", 17 | "model_output_dim": 512, 18 | "hidden_dim": 2048 19 | }, 20 | "optimizer_params": { 21 | "train_batch_size": 512, 22 | "val_batch_size": 1024, 23 | "initial_lr": 0.06, 24 | "momentum": 0.9, 25 | "weight_decay": 1e-4 26 | }, 27 | "num_epochs": 200, 28 | "save_freq": 10, 29 | "resume_checkpoint": null 30 | } 31 | 32 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/simclr/test_simclr_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/imagenet/mouse_test/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "simclrloss_resnet18", 6 | "exp_id": "test_imagenet_exp02", 7 | "trainer": "SimCLR", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [7,9], 11 | "ddp_port": 8886, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "resnet18_simclr", 15 | "loss_params": { 16 | "class": "SimCLRLoss", 17 | "model_output_dim": 512, 18 | "hidden_dim": 512 19 | }, 20 | "optimizer_params": { 21 | "train_batch_size": 256, 22 | "val_batch_size": 1024, 23 | "initial_lr": 0.3, 24 | "momentum": 0.9, 25 | "weight_decay": 0.000001 26 | }, 27 | "num_epochs": 200, 28 | "save_freq": 10, 29 | "resume_checkpoint": null 30 | } 31 | 32 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/models/model_paths.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from mouse_vision.core.default_dirs import MODEL_SAVE_DIR 4 | from mouse_vision.models.model_layers import MODEL_LAYERS 5 | 6 | MODEL_PATHS = { 7 | "shi_mousenet_ir": os.path.join(MODEL_SAVE_DIR, "shi_mousenet_ir.pt"), 8 | "shi_mousenet_vispor5_ir": os.path.join( 9 | MODEL_SAVE_DIR, 10 | "shi_mousenet_vispor5_ir.pt", 11 | ), 12 | "alexnet_bn_ir_64x64_input_pool_6": os.path.join( 13 | MODEL_SAVE_DIR, 14 | "alexnet_bn_ir.pt", 15 | ), 16 | "simplified_mousenet_dual_stream_visp_3x3_ir": os.path.join( 17 | MODEL_SAVE_DIR, 18 | "dual_stream_ir.pt", 19 | ), 20 | "simplified_mousenet_six_stream_visp_3x3_simclr": os.path.join( 21 | MODEL_SAVE_DIR, 22 | "six_stream_simclr.pt", 23 | ), 24 | } 25 | 26 | for model in MODEL_PATHS.keys(): 27 | assert model in MODEL_LAYERS.keys(), f"{model} not in model_layers.py" 28 | -------------------------------------------------------------------------------- /similarity/registry/sim_metric/__init__.py: -------------------------------------------------------------------------------- 1 | from functools import partial 2 | 3 | import similarity 4 | from . import utils 5 | from .dists import scoring 6 | 7 | 8 | similarity.register( 9 | "paper/sim_metric", 10 | { 11 | "id": "ding2021", 12 | "github": "https://github.com/js-d/sim_metric" 13 | } 14 | ) 15 | 16 | register = partial( 17 | similarity.register, 18 | preprocessing=[ 19 | # TODO: center columns for all the metrics? 20 | "center_columns", 21 | # sim_metric scoring functions expect shape (neuron, sample) 22 | # but measure inputs are of shape (sample, neuron) 23 | "transpose" 24 | ] 25 | ) 26 | 27 | register("sim_metric/mean_cca_corr", utils.mean_cca_corr) 28 | register("sim_metric/mean_sq_cca_corr", utils.mean_sq_cca_corr) 29 | register("sim_metric/pwcca_dist", utils.pwcca_dist) 30 | register("sim_metric/lin_cka_dist", scoring.lin_cka_dist) 31 | register("sim_metric/procrustes", scoring.procrustes) 32 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/simclr/test_simclr_trainer_chengxu_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/imagenet/mouse_test/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "simclrloss_resnet18", 6 | "exp_id": "test_imagenet_cxz_exp01", 7 | "trainer": "SimCLR", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [1,5,6,8], 11 | "ddp_port": 8881, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "resnet18_simclr", 15 | "loss_params": { 16 | "class": "SimCLRLoss", 17 | "model_output_dim": 512, 18 | "hidden_dim": 2048 19 | }, 20 | "optimizer_params": { 21 | "train_batch_size": 512, 22 | "val_batch_size": 1024, 23 | "initial_lr": 0.6, 24 | "momentum": 0.9, 25 | "weight_decay": 0.000001 26 | }, 27 | "num_epochs": 200, 28 | "save_freq": 10, 29 | "resume_checkpoint": null 30 | } 31 | 32 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/cifar10/simplified_mousenet_six_stream_cifar10_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "cifar10", 5 | "coll_name": "xentloss_simplified_mousenet_six_stream_64x64_input", 6 | "exp_id": "exp0", 7 | "trainer": "SupervisedCIFAR10", 8 | "gpus": null, 9 | "tpu": "mv-tpu-02", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "simplified_mousenet_six_stream_cifar10", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.01, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/test_imagenet_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/imagenet/mouse_test/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_resnet18", 6 | "exp_id": "test_imagenet_expddp1", 7 | "trainer": "SupervisedImageNet", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [3], 11 | "ddp_port": 8887, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "resnet18", 15 | "loss_params": { 16 | "class": "CrossEntropyLoss" 17 | }, 18 | "optimizer_params": { 19 | "train_batch_size": 256, 20 | "val_batch_size": 1024, 21 | "initial_lr": 0.1, 22 | "lr_decay_schedule": [30, 60, 90], 23 | "lr_decay_rate": 0.1, 24 | "momentum": 0.9, 25 | "weight_decay": 1e-4 26 | }, 27 | "num_epochs": 100, 28 | "save_freq": 10, 29 | "resume_checkpoint": null 30 | } 31 | 32 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/simclr/test_simclr_trainer_100epochs_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/imagenet/mouse_test/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "simclrloss_resnet18", 6 | "exp_id": "test_imagenet_100epochs_exp01", 7 | "trainer": "SimCLR", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [5,6], 11 | "ddp_port": 8883, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "resnet18_simclr", 15 | "loss_params": { 16 | "class": "SimCLRLoss", 17 | "model_output_dim": 512, 18 | "hidden_dim": 512 19 | }, 20 | "optimizer_params": { 21 | "train_batch_size": 256, 22 | "val_batch_size": 1024, 23 | "initial_lr": 0.3, 24 | "momentum": 0.9, 25 | "weight_decay": 0.000001 26 | }, 27 | "num_epochs": 100, 28 | "save_freq": 10, 29 | "resume_checkpoint": null 30 | } 31 | 32 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/cifar10/simplified_mousenet_dual_stream_cifar10_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "cifar10", 5 | "coll_name": "xentloss_simplified_mousenet_dual_stream_64x64_input", 6 | "exp_id": "exp0", 7 | "trainer": "SupervisedCIFAR10", 8 | "gpus": null, 9 | "tpu": "mv-tpu-07", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "simplified_mousenet_dual_stream_cifar10", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.01, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/resnet34_64x64_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_resnet34_64x64_input", 6 | "exp_id": "gpuexp0", 7 | "trainer": "SupervisedImageNet", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [0], 11 | "ddp_port": 3331, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "resnet34_64x64_input", 15 | "loss_params": { 16 | "class": "CrossEntropyLoss" 17 | }, 18 | "optimizer_params": { 19 | "train_batch_size": 256, 20 | "val_batch_size": 1024, 21 | "initial_lr": 0.1, 22 | "lr_decay_schedule": [30, 60, 90], 23 | "lr_decay_rate": 0.1, 24 | "momentum": 0.9, 25 | "weight_decay": 1e-4 26 | }, 27 | "num_epochs": 100, 28 | "save_freq": 10, 29 | "resume_checkpoint": null 30 | } 31 | 32 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/resnet50_64x64_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_resnet50_64x64_input", 6 | "exp_id": "gpuexp0", 7 | "trainer": "SupervisedImageNet", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [1], 11 | "ddp_port": 3332, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "resnet50_64x64_input", 15 | "loss_params": { 16 | "class": "CrossEntropyLoss" 17 | }, 18 | "optimizer_params": { 19 | "train_batch_size": 256, 20 | "val_batch_size": 1024, 21 | "initial_lr": 0.1, 22 | "lr_decay_schedule": [30, 60, 90], 23 | "lr_decay_rate": 0.1, 24 | "momentum": 0.9, 25 | "weight_decay": 1e-4 26 | }, 27 | "num_epochs": 100, 28 | "save_freq": 10, 29 | "resume_checkpoint": null 30 | } 31 | 32 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/simplified_mousenet_single_stream_imagenet_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_simplified_mousenet_single_stream_64x64_input", 6 | "exp_id": "exp1", 7 | "trainer": "SupervisedImageNet", 8 | "gpus": null, 9 | "tpu": "mv-tpu-01", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "simplified_mousenet_single_stream", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.01, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/nnsrm_neurips18/__init__.py: -------------------------------------------------------------------------------- 1 | # https://github.com/qihongl/nnsrm-neurips18 2 | # https://arxiv.org/pdf/1811.11684 3 | import numpy as np 4 | from .qmvpa.rsa import within_RSMs, correlate_2RSMs, inter_procrustes, isc 5 | 6 | import similarity 7 | 8 | 9 | def rsa_measure(X, Y): 10 | rsms = within_RSMs([X, Y]) 11 | return correlate_2RSMs(rsms[0], rsms[1])[0] 12 | 13 | 14 | similarity.register( 15 | "nnsrm_neurips18/rsa", 16 | rsa_measure, 17 | preprocessing=["transpose"] 18 | ) 19 | 20 | 21 | def procrustes_measure(X, Y): 22 | return inter_procrustes(np.array([X, Y]))[1, 0] 23 | 24 | # TODO 25 | similarity.register( 26 | "nnsrm_neurips18/procrustes", 27 | procrustes_measure, 28 | preprocessing=["transpose"] 29 | ) 30 | 31 | 32 | def isc_measure(X, Y): 33 | return np.mean(isc(X, Y)[0]) 34 | 35 | # TODO: what is isc? just correlation? 36 | similarity.register( 37 | "nnsrm_neurips18/isc", 38 | isc_measure, 39 | preprocessing=["transpose"] 40 | ) -------------------------------------------------------------------------------- /similarity/registry/stir/stir/model/tools/constants.py: -------------------------------------------------------------------------------- 1 | import torch as ch 2 | 3 | # dog (117), cat (5), frog (3), turtle (5), bird (21), 4 | # monkey (14), fish (9), crab (4), insect (20) 5 | RESTRICTED_IMAGNET_RANGES = [(151, 268), (281, 285), 6 | (30, 32), (33, 37), (80, 100), (365, 382), 7 | (389, 397), (118, 121), (300, 319)] 8 | 9 | CKPT_NAME = 'checkpoint_rand_seed_{}.pt' 10 | BEST_APPEND = '.best' 11 | CKPT_NAME_LATEST = CKPT_NAME + '.latest' 12 | CKPT_NAME_BEST = CKPT_NAME + BEST_APPEND 13 | 14 | ATTACK_KWARG_KEYS = [ 15 | 'criterion', 16 | 'constraint', 17 | 'eps', 18 | 'step_size', 19 | 'iterations', 20 | 'random_start', 21 | 'random_restarts'] 22 | 23 | LOGS_SCHEMA = { 24 | 'epoch':int, 25 | 'nat_prec1':float, 26 | 'adv_prec1':float, 27 | 'nat_loss':float, 28 | 'adv_loss':float, 29 | 'train_prec1':float, 30 | 'train_loss':float, 31 | 'time':float 32 | } 33 | 34 | LOGS_TABLE = 'logs' 35 | 36 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/cifar10/simplified_mousenet_single_stream_cifar10_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "cifar10", 5 | "coll_name": "xentloss_simplified_mousenet_single_stream_64x64_input", 6 | "exp_id": "exp1", 7 | "trainer": "SupervisedCIFAR10", 8 | "gpus": null, 9 | "tpu": "mv-tpu-02", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "simplified_mousenet_single_stream_cifar10", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.01, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/resnet101_64x64_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_resnet101_64x64_input", 6 | "exp_id": "gpuexp0", 7 | "trainer": "SupervisedImageNet", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [2], 11 | "ddp_port": 3333, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "resnet101_64x64_input", 15 | "loss_params": { 16 | "class": "CrossEntropyLoss" 17 | }, 18 | "optimizer_params": { 19 | "train_batch_size": 256, 20 | "val_batch_size": 1024, 21 | "initial_lr": 0.1, 22 | "lr_decay_schedule": [30, 60, 90], 23 | "lr_decay_rate": 0.1, 24 | "momentum": 0.9, 25 | "weight_decay": 1e-4 26 | }, 27 | "num_epochs": 100, 28 | "save_freq": 10, 29 | "resume_checkpoint": null 30 | } 31 | 32 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/resnet152_64x64_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_resnet152_64x64_input", 6 | "exp_id": "gpuexp0", 7 | "trainer": "SupervisedImageNet", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [3], 11 | "ddp_port": 3334, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "resnet152_64x64_input", 15 | "loss_params": { 16 | "class": "CrossEntropyLoss" 17 | }, 18 | "optimizer_params": { 19 | "train_batch_size": 256, 20 | "val_batch_size": 1024, 21 | "initial_lr": 0.1, 22 | "lr_decay_schedule": [30, 60, 90], 23 | "lr_decay_rate": 0.1, 24 | "momentum": 0.9, 25 | "weight_decay": 1e-4 26 | }, 27 | "num_epochs": 100, 28 | "save_freq": 10, 29 | "resume_checkpoint": null 30 | } 31 | 32 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/test_imagenet_trainer_multigpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/imagenet/mouse_test/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_resnet18", 6 | "exp_id": "test_imagenet_expmddp4", 7 | "trainer": "SupervisedImageNet", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [7,9], 11 | "ddp_port": 8888, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "resnet18", 15 | "loss_params": { 16 | "class": "CrossEntropyLoss" 17 | }, 18 | "optimizer_params": { 19 | "train_batch_size": 256, 20 | "val_batch_size": 1024, 21 | "initial_lr": 0.1, 22 | "lr_decay_schedule": [30, 60, 90], 23 | "lr_decay_rate": 0.1, 24 | "momentum": 0.9, 25 | "weight_decay": 1e-4 26 | }, 27 | "num_epochs": 100, 28 | "save_freq": 10, 29 | "resume_checkpoint": null 30 | } 31 | 32 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/alexnet_five_64x64_imagenet_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_alexnet_five_64x64", 6 | "exp_id": "gpuexp0", 7 | "trainer": "SupervisedImageNet", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [2], 11 | "ddp_port": 5553, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "alexnet_five_64x64", 15 | "loss_params": { 16 | "class": "CrossEntropyLoss" 17 | }, 18 | "optimizer_params": { 19 | "train_batch_size": 256, 20 | "val_batch_size": 1024, 21 | "initial_lr": 0.01, 22 | "lr_decay_schedule": [30, 60, 90], 23 | "lr_decay_rate": 0.1, 24 | "momentum": 0.9, 25 | "weight_decay": 5e-4 26 | }, 27 | "num_epochs": 100, 28 | "save_freq": 10, 29 | "resume_checkpoint": null 30 | } 31 | 32 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/alexnet_four_64x64_imagenet_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_alexnet_four_64x64", 6 | "exp_id": "gpuexp0", 7 | "trainer": "SupervisedImageNet", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [1], 11 | "ddp_port": 5552, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "alexnet_four_64x64", 15 | "loss_params": { 16 | "class": "CrossEntropyLoss" 17 | }, 18 | "optimizer_params": { 19 | "train_batch_size": 256, 20 | "val_batch_size": 1024, 21 | "initial_lr": 0.01, 22 | "lr_decay_schedule": [30, 60, 90], 23 | "lr_decay_rate": 0.1, 24 | "momentum": 0.9, 25 | "weight_decay": 5e-4 26 | }, 27 | "num_epochs": 100, 28 | "save_freq": 10, 29 | "resume_checkpoint": null 30 | } 31 | 32 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/alexnet_six_64x64_imagenet_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_alexnet_six_64x64", 6 | "exp_id": "gpuexp0", 7 | "trainer": "SupervisedImageNet", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [3], 11 | "ddp_port": 5554, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "alexnet_six_64x64", 15 | "loss_params": { 16 | "class": "CrossEntropyLoss" 17 | }, 18 | "optimizer_params": { 19 | "train_batch_size": 256, 20 | "val_batch_size": 1024, 21 | "initial_lr": 0.01, 22 | "lr_decay_schedule": [30, 60, 90], 23 | "lr_decay_rate": 0.1, 24 | "momentum": 0.9, 25 | "weight_decay": 5e-4 26 | }, 27 | "num_epochs": 100, 28 | "save_freq": 10, 29 | "resume_checkpoint": null 30 | } 31 | 32 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/alexnet_two_64x64_imagenet_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_alexnet_two_64x64", 6 | "exp_id": "gpuexp0", 7 | "trainer": "SupervisedImageNet", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [9], 11 | "ddp_port": 5550, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "alexnet_two_64x64", 15 | "loss_params": { 16 | "class": "CrossEntropyLoss" 17 | }, 18 | "optimizer_params": { 19 | "train_batch_size": 256, 20 | "val_batch_size": 1024, 21 | "initial_lr": 0.01, 22 | "lr_decay_schedule": [30, 60, 90], 23 | "lr_decay_rate": 0.1, 24 | "momentum": 0.9, 25 | "weight_decay": 5e-4 26 | }, 27 | "num_epochs": 100, 28 | "save_freq": 10, 29 | "resume_checkpoint": null 30 | } 31 | 32 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/mocov2/simplified_mousenet_single_stream_mocov2_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "mocov2loss_simplified_mousenet_single_stream_64x64_input", 6 | "exp_id": "exp1", 7 | "trainer": "MoCov2", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [0], 11 | "ddp_port": 8882, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "simplified_mousenet_single_stream_mocov2", 15 | "loss_params": { 16 | "class": "MoCov2Loss", 17 | "model_output_dim": 9216 18 | }, 19 | "optimizer_params": { 20 | "train_batch_size": 512, 21 | "val_batch_size": 1024, 22 | "initial_lr": 0.06, 23 | "momentum": 0.9, 24 | "weight_decay": 5e-4 25 | }, 26 | "num_epochs": 200, 27 | "save_freq": 10, 28 | "resume_checkpoint": null 29 | } 30 | 31 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/simclr/simplified_mousenet_single_stream_simclr_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "simclrloss_simplified_mousenet_single_stream_64x64_input", 6 | "exp_id": "exp1", 7 | "trainer": "SimCLR", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [2], 11 | "ddp_port": 8886, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "simplified_mousenet_single_stream_simclr", 15 | "loss_params": { 16 | "class": "SimCLRLoss", 17 | "model_output_dim": 9216 18 | }, 19 | "optimizer_params": { 20 | "train_batch_size": 4096, 21 | "val_batch_size": 1024, 22 | "initial_lr": 4.8, 23 | "momentum": 0.9, 24 | "weight_decay": 0.000001 25 | }, 26 | "num_epochs": 200, 27 | "save_freq": 10, 28 | "resume_checkpoint": null 29 | } 30 | 31 | -------------------------------------------------------------------------------- /similarity/registry/__init__.py: -------------------------------------------------------------------------------- 1 | from . import representation_similarity 2 | from . import netrep 3 | from . import survey_measures 4 | from . import rsatoolbox 5 | from . import repsim 6 | from . import nn_similarity_index 7 | from . import sim_metric 8 | from . import deepdive 9 | from . import svcca 10 | from . import subspacematch 11 | from . import pyrcca 12 | from . import imd 13 | from . import platonic 14 | from . import neuroaimetrics 15 | from . import resi 16 | from . import thingsvision 17 | from . import correcting_cka_alignment 18 | from . import rtd 19 | from . import drfrankenstein 20 | from . import brainscore 21 | from . import implicitdeclaration_similarity 22 | from . import stir 23 | from . import fsd 24 | from . import xrsa_awes 25 | from . import contrasim 26 | from . import ensd 27 | from . import nnsrm_neurips18 28 | from . import brain_language_nlp 29 | from . import llm_repsim 30 | from . import mouse_vision 31 | from . import modelsym 32 | from . import pyrcca 33 | from . import unsupervised_analysis 34 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/alexnet_three_64x64_imagenet_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_alexnet_three_64x64", 6 | "exp_id": "gpuexp0", 7 | "trainer": "SupervisedImageNet", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [7], 11 | "ddp_port": 5551, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "alexnet_three_64x64", 15 | "loss_params": { 16 | "class": "CrossEntropyLoss" 17 | }, 18 | "optimizer_params": { 19 | "train_batch_size": 256, 20 | "val_batch_size": 1024, 21 | "initial_lr": 0.01, 22 | "lr_decay_schedule": [30, 60, 90], 23 | "lr_decay_rate": 0.1, 24 | "momentum": 0.9, 25 | "weight_decay": 5e-4 26 | }, 27 | "num_epochs": 100, 28 | "save_freq": 10, 29 | "resume_checkpoint": null 30 | } 31 | 32 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/simsiam/simplified_mousenet_single_stream_simsiam_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "simsiamloss_simplified_mousenet_single_stream_64x64_input", 6 | "exp_id": "exp1", 7 | "trainer": "SimSiam", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [3], 11 | "ddp_port": 8851, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "simplified_mousenet_single_stream_simsiam", 15 | "loss_params": { 16 | "class": "SimSiamLoss", 17 | "model_output_dim": 9216 18 | }, 19 | "optimizer_params": { 20 | "train_batch_size": 512, 21 | "val_batch_size": 1024, 22 | "initial_lr": 0.1, 23 | "momentum": 0.9, 24 | "weight_decay": 1e-4 25 | }, 26 | "num_epochs": 100, 27 | "save_freq": 10, 28 | "resume_checkpoint": null 29 | } 30 | 31 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/cifar10/simplified_mousenet_dual_stream_visp_3x3_cifar10_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "cifar10", 5 | "coll_name": "xentloss_simplified_mousenet_dual_stream_visp_3x3_64x64_input", 6 | "exp_id": "exp0", 7 | "trainer": "SupervisedCIFAR10", 8 | "gpus": null, 9 | "tpu": "mv-tpu-08", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "simplified_mousenet_dual_stream_visp_3x3_cifar10", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.01, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/cifar10/simplified_mousenet_six_stream_visp_3x3_cifar10_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "cifar10", 5 | "coll_name": "xentloss_simplified_mousenet_six_stream_visp_3x3_64x64_input", 6 | "exp_id": "exp2", 7 | "trainer": "SupervisedCIFAR10", 8 | "gpus": null, 9 | "tpu": "mv-tpu-06", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "simplified_mousenet_six_stream_visp_3x3_cifar10", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.01, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/mocov2/simplified_mousenet_six_stream_visp_3x3_mocov2_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "mocov2loss_simplified_mousenet_six_stream_visp3x3_64x64_input", 6 | "exp_id": "exp0", 7 | "trainer": "MoCov2", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [1], 11 | "ddp_port": 8863, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "simplified_mousenet_six_stream_visp_3x3_mocov2", 15 | "loss_params": { 16 | "class": "MoCov2Loss", 17 | "model_output_dim": 18432 18 | }, 19 | "optimizer_params": { 20 | "train_batch_size": 512, 21 | "val_batch_size": 1024, 22 | "initial_lr": 0.06, 23 | "momentum": 0.9, 24 | "weight_decay": 5e-4 25 | }, 26 | "num_epochs": 200, 27 | "save_freq": 10, 28 | "resume_checkpoint": null 29 | } 30 | 31 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/loss_functions/autoencoder_loss.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import torch.nn as nn 3 | import numpy as np 4 | 5 | from mouse_vision.loss_functions.loss_function_base import LossFunctionBase 6 | 7 | __all__ = ["AutoEncoderLoss"] 8 | 9 | 10 | class AutoEncoderLoss(LossFunctionBase): 11 | def __init__(self, reduction="mean", l1_weighting=1e-4): 12 | super(AutoEncoderLoss, self).__init__() 13 | self.reduction = reduction 14 | self.output_loss = nn.MSELoss(reduction=self.reduction) 15 | self.l1_weighting = l1_weighting 16 | print(f"Using L1 weighting of {self.l1_weighting}") 17 | 18 | def forward(self, model, inp, **kwargs): 19 | preds = model(inp) 20 | 21 | l2_loss = self.output_loss(preds["output"], inp) 22 | l1_reg = torch.sum(torch.abs(preds["hidden_vec"])) 23 | loss = ( 24 | 0.5 * l2_loss 25 | + (self.l1_weighting / np.prod(preds["hidden_vec"].shape)) * l1_reg 26 | ) 27 | return loss 28 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/simplified_mousenet_dual_stream_visp_3x3_bn_imagenet_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_simplified_mousenet_dual_stream_visp_3x3_bn_64x64_input", 6 | "exp_id": "exp0", 7 | "trainer": "SupervisedImageNet", 8 | "gpus": null, 9 | "tpu": "mv-tpu-07", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "simplified_mousenet_dual_stream_visp_3x3_bn", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.01, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/simplified_mousenet_six_stream_visp_3x3_bn_imagenet_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_simplified_mousenet_six_stream_visp_3x3_bn_64x64_input", 6 | "exp_id": "exp0", 7 | "trainer": "SupervisedImageNet", 8 | "gpus": null, 9 | "tpu": "mv-tpu-08", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "simplified_mousenet_six_stream_visp_3x3_bn", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.01, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/mocov2/simplified_mousenet_dual_stream_visp_3x3_mocov2_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "mocov2loss_simplified_mousenet_dual_stream_visp3x3_64x64_input", 6 | "exp_id": "exp0", 7 | "trainer": "MoCov2", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [8], 11 | "ddp_port": 8862, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "simplified_mousenet_dual_stream_visp_3x3_mocov2", 15 | "loss_params": { 16 | "class": "MoCov2Loss", 17 | "model_output_dim": 18432 18 | }, 19 | "optimizer_params": { 20 | "train_batch_size": 512, 21 | "val_batch_size": 1024, 22 | "initial_lr": 0.06, 23 | "momentum": 0.9, 24 | "weight_decay": 5e-4 25 | }, 26 | "num_epochs": 200, 27 | "save_freq": 10, 28 | "resume_checkpoint": null 29 | } 30 | 31 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/simclr/simplified_mousenet_six_stream_visp_3x3_simclr_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "simclrloss_simplified_mousenet_six_stream_visp3x3_64x64_input", 6 | "exp_id": "exp1", 7 | "trainer": "SimCLR", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [3], 11 | "ddp_port": 8861, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "simplified_mousenet_six_stream_visp_3x3_simclr", 15 | "loss_params": { 16 | "class": "SimCLRLoss", 17 | "model_output_dim": 18432 18 | }, 19 | "optimizer_params": { 20 | "train_batch_size": 4096, 21 | "val_batch_size": 1024, 22 | "initial_lr": 4.8, 23 | "momentum": 0.9, 24 | "weight_decay": 0.000001 25 | }, 26 | "num_epochs": 200, 27 | "save_freq": 10, 28 | "resume_checkpoint": null 29 | } 30 | 31 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/simsiam/simplified_mousenet_six_stream_visp_3x3_simsiam_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "simsiamloss_simplified_mousenet_six_stream_visp3x3_64x64_input", 6 | "exp_id": "exp0", 7 | "trainer": "SimSiam", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [5], 11 | "ddp_port": 8852, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "simplified_mousenet_six_stream_visp_3x3_simsiam", 15 | "loss_params": { 16 | "class": "SimSiamLoss", 17 | "model_output_dim": 18432 18 | }, 19 | "optimizer_params": { 20 | "train_batch_size": 512, 21 | "val_batch_size": 1024, 22 | "initial_lr": 0.1, 23 | "momentum": 0.9, 24 | "weight_decay": 1e-4 25 | }, 26 | "num_epochs": 100, 27 | "save_freq": 10, 28 | "resume_checkpoint": null 29 | } 30 | 31 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/cifar10/simplified_mousenet_dual_stream_visp_3x3_bn_cifar10_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "cifar10", 5 | "coll_name": "xentloss_simplified_mousenet_dual_stream_visp_3x3_bn_64x64_input", 6 | "exp_id": "exp0", 7 | "trainer": "SupervisedCIFAR10", 8 | "gpus": null, 9 | "tpu": "mv-tpu-05", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "simplified_mousenet_dual_stream_visp_3x3_bn_cifar10", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.01, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/cifar10/simplified_mousenet_dual_stream_vispor_only_cifar10_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "cifar10", 5 | "coll_name": "xentloss_simplified_mousenet_dual_stream_vispor_only_64x64_input", 6 | "exp_id": "exp0", 7 | "trainer": "SupervisedCIFAR10", 8 | "gpus": null, 9 | "tpu": "mv-tpu-09", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "simplified_mousenet_dual_stream_vispor_only_cifar10", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.01, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/cifar10/simplified_mousenet_six_stream_visp_3x3_bn_cifar10_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "cifar10", 5 | "coll_name": "xentloss_simplified_mousenet_six_stream_visp_3x3_bn_64x64_input", 6 | "exp_id": "exp0", 7 | "trainer": "SupervisedCIFAR10", 8 | "gpus": null, 9 | "tpu": "mv-tpu-06", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "simplified_mousenet_six_stream_visp_3x3_bn_cifar10", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.01, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/cifar10/simplified_mousenet_six_stream_vispor_only_cifar10_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "cifar10", 5 | "coll_name": "xentloss_simplified_mousenet_six_stream_vispor_only_64x64_input", 6 | "exp_id": "exp0", 7 | "trainer": "SupervisedCIFAR10", 8 | "gpus": null, 9 | "tpu": "mv-tpu-06", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "simplified_mousenet_six_stream_vispor_only_cifar10", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.01, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/relative_location/test_relative_location_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "rellocloss_resnet18", 6 | "exp_id": "test_imagenet_tpuexp01", 7 | "trainer": "RelativeLocation", 8 | "gpus": null, 9 | "tpu": "mv-tpu-01", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "resnet18_relative_location", 13 | "loss_params": { 14 | "class": "RelativeLocationLoss", 15 | "model_output_dim": 512 16 | }, 17 | "optimizer_params": { 18 | "train_batch_size": 512, 19 | "val_batch_size": 1024, 20 | "initial_lr": 0.2, 21 | "lr_decay_schedule": [30, 50], 22 | "lr_decay_rate": 0.1, 23 | "warmup_epochs": 5, 24 | "momentum": 0.9, 25 | "weight_decay": 0.0001 26 | }, 27 | "num_epochs": 70, 28 | "save_freq": 10, 29 | "resume_checkpoint": null 30 | } 31 | 32 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/rotnet/test_rotnet_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "ddp_port": 30305, 5 | "db_name": "imagenet", 6 | "coll_name": "rotnetloss_alexnet", 7 | "exp_id": "test_rotnet_exp02_tpu", 8 | "trainer": "RotNet", 9 | "cuda": false, 10 | "tpu": "mv-tpu-06", 11 | "gpus": null, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "alexnet_rotnet", 15 | "loss_params": { 16 | "class": "RotNetLoss", 17 | "model_output_dim": 4096 18 | }, 19 | "optimizer_params": { 20 | "train_batch_size": 192, 21 | "val_batch_size": 1024, 22 | "initial_lr": 0.01, 23 | "lr_decay_schedule": [15,30,45,50], 24 | "lr_decay_rate": 0.1, 25 | "nesterov": true, 26 | "momentum": 0.9, 27 | "weight_decay": 5e-4 28 | }, 29 | "num_epochs": 50, 30 | "save_freq": 5, 31 | "resume_checkpoint": null 32 | } 33 | 34 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/simclr/simplified_mousenet_dual_stream_visp_3x3_simclr_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "simclrloss_simplified_mousenet_dual_stream_visp3x3_64x64_input", 6 | "exp_id": "exp0", 7 | "trainer": "SimCLR", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [6], 11 | "ddp_port": 8860, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "simplified_mousenet_dual_stream_visp_3x3_simclr", 15 | "loss_params": { 16 | "class": "SimCLRLoss", 17 | "model_output_dim": 18432 18 | }, 19 | "optimizer_params": { 20 | "train_batch_size": 4096, 21 | "val_batch_size": 1024, 22 | "initial_lr": 4.8, 23 | "momentum": 0.9, 24 | "weight_decay": 0.000001 25 | }, 26 | "num_epochs": 200, 27 | "save_freq": 10, 28 | "resume_checkpoint": null 29 | } 30 | 31 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/simsiam/simplified_mousenet_dual_stream_visp_3x3_simsiam_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "simsiamloss_simplified_mousenet_dual_stream_visp3x3_64x64_input", 6 | "exp_id": "exp1", 7 | "trainer": "SimSiam", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [4], 11 | "ddp_port": 8850, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "simplified_mousenet_dual_stream_visp_3x3_simsiam", 15 | "loss_params": { 16 | "class": "SimSiamLoss", 17 | "model_output_dim": 18432 18 | }, 19 | "optimizer_params": { 20 | "train_batch_size": 512, 21 | "val_batch_size": 1024, 22 | "initial_lr": 0.1, 23 | "momentum": 0.9, 24 | "weight_decay": 1e-4 25 | }, 26 | "num_epochs": 100, 27 | "save_freq": 10, 28 | "resume_checkpoint": null 29 | } 30 | 31 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/cifar10/simplified_mousenet_six_stream_visp_3x3_bn_cifar10_highlr_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "cifar10", 5 | "coll_name": "xentloss_simplified_mousenet_six_stream_visp_3x3_bn_64x64_input", 6 | "exp_id": "highlr0", 7 | "trainer": "SupervisedCIFAR10", 8 | "gpus": null, 9 | "tpu": "mv-tpu-09", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "simplified_mousenet_six_stream_visp_3x3_bn_cifar10", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.1, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/cifar10/simplified_mousenet_six_stream_visp_3x3_bn_cifar10_lowlr_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "cifar10", 5 | "coll_name": "xentloss_simplified_mousenet_six_stream_visp_3x3_bn_64x64_input", 6 | "exp_id": "lowlr0", 7 | "trainer": "SupervisedCIFAR10", 8 | "gpus": null, 9 | "tpu": "mv-tpu-10", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "simplified_mousenet_six_stream_visp_3x3_bn_cifar10", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.001, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/alexnet_64x64_imagenet_IR_transforms_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_alexnet", 6 | "exp_id": "sup_alexnet_ir_transforms", 7 | "trainer": "SupervisedImageNet", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [0], 11 | "ddp_port": 5554, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "alexnet_64x64_input_pool_6_with_ir_transforms", 15 | "loss_params": { 16 | "class": "CrossEntropyLoss" 17 | }, 18 | "optimizer_params": { 19 | "train_batch_size": 256, 20 | "val_batch_size": 1024, 21 | "initial_lr": 0.1, 22 | "lr_decay_schedule": [30, 60, 90], 23 | "lr_decay_rate": 0.1, 24 | "momentum": 0.9, 25 | "weight_decay": 5e-4 26 | }, 27 | "num_epochs": 100, 28 | "save_freq": 10, 29 | "resume_checkpoint": null 30 | } 31 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/simplified_mousenet_six_stream_visp_3x3_bn_imagenet_highlr_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_simplified_mousenet_six_stream_visp_3x3_bn_64x64_input", 6 | "exp_id": "highlr0", 7 | "trainer": "SupervisedImageNet", 8 | "gpus": null, 9 | "tpu": "mv-tpu-08", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "simplified_mousenet_six_stream_visp_3x3_bn", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.1, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/relative_location/resnet50_relative_location_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "rellocloss_resnet50", 6 | "exp_id": "test_imagenet_tpuexp02", 7 | "trainer": "RelativeLocation", 8 | "gpus": null, 9 | "tpu": "mv-tpu-04", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "resnet50_relative_location", 13 | "loss_params": { 14 | "class": "RelativeLocationLoss", 15 | "model_output_dim": 2048 16 | }, 17 | "optimizer_params": { 18 | "train_batch_size": 512, 19 | "val_batch_size": 1024, 20 | "initial_lr": 0.2, 21 | "lr_decay_schedule": [30, 50], 22 | "lr_decay_rate": 0.1, 23 | "warmup_epochs": 5, 24 | "momentum": 0.9, 25 | "weight_decay": 0.0001 26 | }, 27 | "num_epochs": 70, 28 | "save_freq": 10, 29 | "resume_checkpoint": null 30 | } 31 | 32 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/cifar10/simplified_mousenet_dual_stream_visp_3x3_bn_cifar10_highlr_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "cifar10", 5 | "coll_name": "xentloss_simplified_mousenet_dual_stream_visp_3x3_bn_64x64_input", 6 | "exp_id": "highlr0", 7 | "trainer": "SupervisedCIFAR10", 8 | "gpus": null, 9 | "tpu": "mv-tpu-05", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "simplified_mousenet_dual_stream_visp_3x3_bn_cifar10", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.1, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/cifar10/simplified_mousenet_dual_stream_visp_3x3_bn_cifar10_lowlr_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "cifar10", 5 | "coll_name": "xentloss_simplified_mousenet_dual_stream_visp_3x3_bn_64x64_input", 6 | "exp_id": "lowlr0", 7 | "trainer": "SupervisedCIFAR10", 8 | "gpus": null, 9 | "tpu": "mv-tpu-05", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "simplified_mousenet_dual_stream_visp_3x3_bn_cifar10", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.001, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/rotnet/test_rotnet_trainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/imagenet/mouse_test/", 3 | "port": 29029, 4 | "ddp_port": 30305, 5 | "db_name": "imagenet", 6 | "coll_name": "rotnetloss_alexnet", 7 | "exp_id": "test_rotnet_exp03", 8 | "trainer": "RotNet", 9 | "cuda": true, 10 | "tpu": false, 11 | "gpus": [7], 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "alexnet_rotnet", 15 | "loss_params": { 16 | "class": "RotNetLoss", 17 | "model_output_dim": 4096 18 | }, 19 | "optimizer_params": { 20 | "train_batch_size": 192, 21 | "val_batch_size": 1024, 22 | "initial_lr": 0.01, 23 | "lr_decay_schedule": [15,30,45,50], 24 | "lr_decay_rate": 0.1, 25 | "nesterov": true, 26 | "momentum": 0.9, 27 | "weight_decay": 5e-4 28 | }, 29 | "num_epochs": 50, 30 | "save_freq": 5, 31 | "resume_checkpoint": null 32 | } 33 | 34 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/alexnet_bn_64x64_imagenet_IR_transforms_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_alexnet", 6 | "exp_id": "sup_alexnet_bn_ir_transforms", 7 | "trainer": "SupervisedImageNet", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [1], 11 | "ddp_port": 5557, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "alexnet_bn_64x64_input_pool_6_with_ir_transforms", 15 | "loss_params": { 16 | "class": "CrossEntropyLoss" 17 | }, 18 | "optimizer_params": { 19 | "train_batch_size": 256, 20 | "val_batch_size": 1024, 21 | "initial_lr": 0.1, 22 | "lr_decay_schedule": [30, 60, 90], 23 | "lr_decay_rate": 0.1, 24 | "momentum": 0.9, 25 | "weight_decay": 5e-4 26 | }, 27 | "num_epochs": 100, 28 | "save_freq": 10, 29 | "resume_checkpoint": null 30 | } 31 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/cifar10/simplified_mousenet_six_stream_vispor_only_visp_3x3_cifar10_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "cifar10", 5 | "coll_name": "xentloss_simplified_mousenet_six_stream_vispor_only_visp_3x3_64x64_input", 6 | "exp_id": "exp0", 7 | "trainer": "SupervisedCIFAR10", 8 | "gpus": null, 9 | "tpu": "mv-tpu-10", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "simplified_mousenet_six_stream_vispor_only_visp_3x3_cifar10", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.01, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/cifar10/simplified_mousenet_dual_stream_vispor_only_visp_3x3_cifar10_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "cifar10", 5 | "coll_name": "xentloss_simplified_mousenet_dual_stream_vispor_only_visp_3x3_64x64_input", 6 | "exp_id": "exp1", 7 | "trainer": "SupervisedCIFAR10", 8 | "gpus": null, 9 | "tpu": "mv-tpu-11", 10 | "seed": 1, 11 | "dataloader_workers": 8, 12 | "model": "simplified_mousenet_dual_stream_vispor_only_visp_3x3_cifar10", 13 | "loss_params": { 14 | "class": "CrossEntropyLoss" 15 | }, 16 | "optimizer_params": { 17 | "train_batch_size": 256, 18 | "val_batch_size": 1024, 19 | "initial_lr": 0.01, 20 | "lr_decay_schedule": [30, 60, 90], 21 | "lr_decay_rate": 0.1, 22 | "momentum": 0.9, 23 | "weight_decay": 5e-4 24 | }, 25 | "num_epochs": 100, 26 | "save_freq": 10, 27 | "resume_checkpoint": null 28 | } 29 | 30 | -------------------------------------------------------------------------------- /similarity/registry/nnsrm_neurips18/qmvpa/preproc.py: -------------------------------------------------------------------------------- 1 | from sklearn.preprocessing import StandardScaler 2 | from sklearn.model_selection import train_test_split 3 | 4 | 5 | def scale_data(X_train, X_test): 6 | """ 7 | X_train: (n_features, n_examples) 8 | scale axis 0 - feature normalization 9 | """ 10 | scaler = StandardScaler() 11 | X_train = scaler.fit_transform(X_train.T).T 12 | X_test = scaler.transform(X_test.T).T 13 | return X_train, X_test 14 | 15 | 16 | def group_train_test_split(Xs, Y, test_prop, random_state): 17 | """train test split for a list of Xs 18 | Y is common to all Xs 19 | """ 20 | Xs_train = [] 21 | Xs_test = [] 22 | for s in range(len(Xs)): 23 | X_train, X_test, y_train, y_test = train_test_split( 24 | Xs[s].T, Y, test_size=test_prop, random_state=0) 25 | X_train = X_train.T 26 | X_test = X_test.T 27 | # X_train, X_test = scale_data(X_train, X_test) 28 | Xs_train.append(X_train) 29 | Xs_test.append(X_test) 30 | return Xs_train, Xs_test 31 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/test_ir_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_resnet18", 6 | "exp_id": "test_ir_exp04_tpu", 7 | "trainer": "InstanceDiscrimination", 8 | "gpus": null, 9 | "tpu": "mv-tpu-03", 10 | "seed": 1, 11 | "dataloader_workers": 32, 12 | "model": "resnet18_ir", 13 | "loss_params": { 14 | "class": "InstanceDiscriminationLoss", 15 | "m": 4096, 16 | "gamma": 0.5, 17 | "tau": 0.07, 18 | "embedding_dim": 128, 19 | "model_output_dim": 512 20 | }, 21 | "optimizer_params": { 22 | "train_batch_size": 256, 23 | "val_batch_size": 1024, 24 | "initial_lr": 0.03, 25 | "lr_decay_schedule": [120, 160], 26 | "lr_decay_rate": 0.1, 27 | "momentum": 0.9, 28 | "weight_decay": 1e-4 29 | }, 30 | "num_epochs": 200, 31 | "save_freq": 10, 32 | "resume_checkpoint": null 33 | } 34 | 35 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/autoencoder/simplified_mousenet_six_stream_ae_imagenet_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "aeloss_simplified_mousenet_six_stream", 6 | "exp_id": "gpuexp2", 7 | "trainer": "AutoEncoder", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [6], 11 | "ddp_port": 8832, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "simplified_mousenet_ae_six_stream", 15 | "loss_params": { 16 | "class": "AutoEncoderLoss", 17 | "l1_weighting": 5e-4 18 | }, 19 | "optimizer_params": { 20 | "train_batch_size": 256, 21 | "val_batch_size": 1024, 22 | "initial_lr": 0.001, 23 | "lr_decay_schedule": [30, 60, 90], 24 | "lr_decay_rate": 0.1, 25 | "momentum": 0.9, 26 | "weight_decay": 5e-4 27 | }, 28 | "num_epochs": 100, 29 | "save_freq": 10, 30 | "resume_checkpoint": null 31 | } 32 | 33 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/rotnet/simplified_mousenet_single_stream_rotnet_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "rotnetloss_simplified_mousenet_single_stream_64x64_input", 6 | "exp_id": "exp1", 7 | "trainer": "RotNet", 8 | "cuda": false, 9 | "tpu": "mv-tpu-04", 10 | "gpus": null, 11 | "seed": 1, 12 | "dataloader_workers": 8, 13 | "model": "simplified_mousenet_single_stream_rotnet", 14 | "loss_params": { 15 | "class": "RotNetLoss", 16 | "model_output_dim": 9216 17 | }, 18 | "optimizer_params": { 19 | "train_batch_size": 192, 20 | "val_batch_size": 1024, 21 | "initial_lr": 0.01, 22 | "lr_decay_schedule": [15,30,45,50], 23 | "lr_decay_rate": 0.1, 24 | "nesterov": true, 25 | "momentum": 0.9, 26 | "weight_decay": 5e-4 27 | }, 28 | "num_epochs": 50, 29 | "save_freq": 5, 30 | "resume_checkpoint": null 31 | } 32 | 33 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/autoencoder/simplified_mousenet_dual_stream_ae_imagenet_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "aeloss_simplified_mousenet_dual_stream", 6 | "exp_id": "gpuexp2", 7 | "trainer": "AutoEncoder", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [2], 11 | "ddp_port": 8830, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "simplified_mousenet_ae_dual_stream", 15 | "loss_params": { 16 | "class": "AutoEncoderLoss", 17 | "l1_weighting": 5e-4 18 | }, 19 | "optimizer_params": { 20 | "train_batch_size": 256, 21 | "val_batch_size": 1024, 22 | "initial_lr": 0.01, 23 | "lr_decay_schedule": [30, 60, 90], 24 | "lr_decay_rate": 0.1, 25 | "momentum": 0.9, 26 | "weight_decay": 5e-4 27 | }, 28 | "num_epochs": 100, 29 | "save_freq": 10, 30 | "resume_checkpoint": null 31 | } 32 | 33 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/autoencoder/simplified_mousenet_single_stream_ae_imagenet_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "aeloss_simplified_mousenet_single_stream", 6 | "exp_id": "gpuexp2", 7 | "trainer": "AutoEncoder", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [3], 11 | "ddp_port": 8831, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "simplified_mousenet_ae_single_stream", 15 | "loss_params": { 16 | "class": "AutoEncoderLoss", 17 | "l1_weighting": 5e-4 18 | }, 19 | "optimizer_params": { 20 | "train_batch_size": 256, 21 | "val_batch_size": 1024, 22 | "initial_lr": 0.01, 23 | "lr_decay_schedule": [30, 60, 90], 24 | "lr_decay_rate": 0.1, 25 | "momentum": 0.9, 26 | "weight_decay": 5e-4 27 | }, 28 | "num_epochs": 100, 29 | "save_freq": 10, 30 | "resume_checkpoint": null 31 | } 32 | 33 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/simplified_mousenet_six_stream_visp_3x3_bn_imagenet_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_simplified_mousenet_six_stream_visp_3x3_bn_64x64_input", 6 | "exp_id": "gpuexp0", 7 | "trainer": "SupervisedImageNet", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [1], 11 | "ddp_port": 8817, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "simplified_mousenet_six_stream_visp_3x3_bn", 15 | "loss_params": { 16 | "class": "CrossEntropyLoss" 17 | }, 18 | "optimizer_params": { 19 | "train_batch_size": 256, 20 | "val_batch_size": 1024, 21 | "initial_lr": 0.01, 22 | "lr_decay_schedule": [30, 60, 90], 23 | "lr_decay_rate": 0.1, 24 | "momentum": 0.9, 25 | "weight_decay": 5e-4 26 | }, 27 | "num_epochs": 100, 28 | "save_freq": 10, 29 | "resume_checkpoint": null 30 | } 31 | 32 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/simplified_mousenet_dual_stream_visp_3x3_bn_imagenet_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_simplified_mousenet_dual_stream_visp_3x3_bn_64x64_input", 6 | "exp_id": "gpuexp0", 7 | "trainer": "SupervisedImageNet", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [0], 11 | "ddp_port": 8812, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "simplified_mousenet_dual_stream_visp_3x3_bn", 15 | "loss_params": { 16 | "class": "CrossEntropyLoss" 17 | }, 18 | "optimizer_params": { 19 | "train_batch_size": 256, 20 | "val_batch_size": 1024, 21 | "initial_lr": 0.01, 22 | "lr_decay_schedule": [30, 60, 90], 23 | "lr_decay_rate": 0.1, 24 | "momentum": 0.9, 25 | "weight_decay": 5e-4 26 | }, 27 | "num_epochs": 100, 28 | "save_freq": 10, 29 | "resume_checkpoint": null 30 | } 31 | 32 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/rotnet/simplified_mousenet_six_stream_visp_3x3_rotnet_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "rotnetloss_simplified_mousenet_six_stream_visp3x3_64x64_input", 6 | "exp_id": "exp0", 7 | "trainer": "RotNet", 8 | "cuda": false, 9 | "tpu": "mv-tpu-02", 10 | "gpus": null, 11 | "seed": 1, 12 | "dataloader_workers": 8, 13 | "model": "simplified_mousenet_six_stream_visp_3x3_rotnet", 14 | "loss_params": { 15 | "class": "RotNetLoss", 16 | "model_output_dim": 18432 17 | }, 18 | "optimizer_params": { 19 | "train_batch_size": 192, 20 | "val_batch_size": 1024, 21 | "initial_lr": 0.01, 22 | "lr_decay_schedule": [15,30,45,50], 23 | "lr_decay_rate": 0.1, 24 | "nesterov": true, 25 | "momentum": 0.9, 26 | "weight_decay": 5e-4 27 | }, 28 | "num_epochs": 50, 29 | "save_freq": 5, 30 | "resume_checkpoint": null 31 | } 32 | 33 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/simplified_mousenet_six_stream_visp_3x3_bn_imagenet_highlr_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_simplified_mousenet_six_stream_visp_3x3_bn_64x64_input", 6 | "exp_id": "gpuhighlr0", 7 | "trainer": "SupervisedImageNet", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [2], 11 | "ddp_port": 8813, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "simplified_mousenet_six_stream_visp_3x3_bn", 15 | "loss_params": { 16 | "class": "CrossEntropyLoss" 17 | }, 18 | "optimizer_params": { 19 | "train_batch_size": 256, 20 | "val_batch_size": 1024, 21 | "initial_lr": 0.1, 22 | "lr_decay_schedule": [30, 60, 90], 23 | "lr_decay_rate": 0.1, 24 | "momentum": 0.9, 25 | "weight_decay": 5e-4 26 | }, 27 | "num_epochs": 100, 28 | "save_freq": 10, 29 | "resume_checkpoint": null 30 | } 31 | 32 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/imagenet/simplified_mousenet_six_stream_visp_3x3_bn_imagenet_lowlr_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "xentloss_simplified_mousenet_six_stream_visp_3x3_bn_64x64_input", 6 | "exp_id": "gpulowlr0", 7 | "trainer": "SupervisedImageNet", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [1], 11 | "ddp_port": 8819, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "simplified_mousenet_six_stream_visp_3x3_bn", 15 | "loss_params": { 16 | "class": "CrossEntropyLoss" 17 | }, 18 | "optimizer_params": { 19 | "train_batch_size": 256, 20 | "val_batch_size": 1024, 21 | "initial_lr": 0.001, 22 | "lr_decay_schedule": [30, 60, 90], 23 | "lr_decay_rate": 0.1, 24 | "momentum": 0.9, 25 | "weight_decay": 5e-4 26 | }, 27 | "num_epochs": 100, 28 | "save_freq": 10, 29 | "resume_checkpoint": null 30 | } 31 | 32 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/rotnet/simplified_mousenet_dual_stream_visp_3x3_rotnet_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "rotnetloss_simplified_mousenet_dual_stream_visp3x3_64x64_input", 6 | "exp_id": "exp0", 7 | "trainer": "RotNet", 8 | "cuda": false, 9 | "tpu": "mv-tpu-01", 10 | "gpus": null, 11 | "seed": 1, 12 | "dataloader_workers": 8, 13 | "model": "simplified_mousenet_dual_stream_visp_3x3_rotnet", 14 | "loss_params": { 15 | "class": "RotNetLoss", 16 | "model_output_dim": 18432 17 | }, 18 | "optimizer_params": { 19 | "train_batch_size": 192, 20 | "val_batch_size": 1024, 21 | "initial_lr": 0.01, 22 | "lr_decay_schedule": [15,30,45,50], 23 | "lr_decay_rate": 0.1, 24 | "nesterov": true, 25 | "momentum": 0.9, 26 | "weight_decay": 5e-4 27 | }, 28 | "num_epochs": 50, 29 | "save_freq": 5, 30 | "resume_checkpoint": null 31 | } 32 | 33 | -------------------------------------------------------------------------------- /similarity/registry/drfrankenstein/src/comparators/compare_functions/__init__.py: -------------------------------------------------------------------------------- 1 | from .cca import cca 2 | from .cca_torch import cca as cca_torch 3 | from .cka import cka 4 | from .cka_torch import cka as cka_torch 5 | from .correlation import correlation 6 | from .l2 import l2 7 | from .lr import lr 8 | from .lr_torch import lr as lr_torch 9 | # from .ls_orth import ls_orth 10 | # from .ls_sum import ls_sum 11 | # from .ps_inv import ps_inv 12 | # from .tsne import tsne 13 | 14 | 15 | def get_comparator_function(str_comparator): 16 | str_comparator = str_comparator.lower() 17 | dispatcher = { 18 | 'cka': cka, 19 | 'cca': cca, 20 | 'l2': l2, 21 | 'ps_inv': ps_inv, 22 | 'ls_orth': ls_orth, 23 | 'corr': correlation, 24 | 'lr': lr, 25 | 'ls_sum': ls_sum, 26 | 'cca_torch': cca_torch, 27 | 'lr_torch': lr_torch, 28 | 'cka_torch': cka_torch, 29 | } 30 | 31 | if str_comparator not in dispatcher: 32 | raise ValueError('{} is unknown comparator.'.format(str_comparator)) 33 | 34 | return dispatcher[str_comparator] 35 | -------------------------------------------------------------------------------- /similarity/registry/ensd/ENSD_Tutorial.py: -------------------------------------------------------------------------------- 1 | # Code taken from https://github.com/camillerb/ENSD/blob/main/ENSD_Tutorial.ipynb 2 | import numpy as np 3 | from scipy.stats import ortho_group 4 | import matplotlib.pyplot as plt 5 | from mpl_toolkits.mplot3d import Axes3D 6 | import pandas as pd 7 | import random as rd 8 | import copy 9 | import tqdm 10 | import math 11 | 12 | ## Define functions to compute ENSD and PR 13 | def PR(X): 14 | return (np.trace(X.T@X)**2)/np.trace(X.T@X@X.T@X) 15 | def TR(X,Y): 16 | return np.trace( ((X.T@X)/np.trace(X.T@X)) @ ((Y.T@Y)/np.trace(Y.T@Y)) ) 17 | def ENSD(X, Y): 18 | #input is data matrix 19 | return PR(X)*PR(Y)*TR(X,Y)# 20 | def computeDist(X, Y): 21 | return (2/math.pi)*(np.arccos(ENSD(X,Y)/np.sqrt(PR(X)*PR(Y)))) 22 | def eigvecOverlap(X,Y): 23 | ux, sx, vx = np.linalg.svd(X, full_matrices=True) 24 | uy, sy, vy = np.linalg.svd(Y, full_matrices=True) 25 | return np.square(ux.T@uy) 26 | def gen_orthonormal(dim): 27 | H = np.random.rand(dim, dim) 28 | u, s, vh = np.linalg.svd(H, full_matrices=False) 29 | return u#ortho_group.rvs(dim) -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/alexnet_64x64_input_pool_6_ir_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_alexnet_64x64_input_pool_6", 6 | "exp_id": "exp1", 7 | "trainer": "InstanceDiscrimination", 8 | "gpus": null, 9 | "tpu": "mv-tpu-06", 10 | "seed": 1, 11 | "dataloader_workers": 32, 12 | "model": "alexnet_ir_64x64_input_pool_6", 13 | "loss_params": { 14 | "class": "InstanceDiscriminationLoss", 15 | "m": 4096, 16 | "gamma": 0.5, 17 | "tau": 0.07, 18 | "embedding_dim": 128, 19 | "model_output_dim": 4096 20 | }, 21 | "optimizer_params": { 22 | "train_batch_size": 256, 23 | "val_batch_size": 1024, 24 | "initial_lr": 0.03, 25 | "lr_decay_schedule": [120, 160], 26 | "lr_decay_rate": 0.1, 27 | "momentum": 0.9, 28 | "weight_decay": 5e-4 29 | }, 30 | "num_epochs": 200, 31 | "save_freq": 10, 32 | "resume_checkpoint": null 33 | } 34 | 35 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/neural_mappers/identity_neural_map.py: -------------------------------------------------------------------------------- 1 | from . import neural_map_base as nm 2 | 3 | __all__ = ["IdentityNeuralMap"] 4 | 5 | class IdentityNeuralMap(nm.NeuralMapBase): 6 | """ 7 | This is the implementation for performing the identity map from source units. 8 | This mapper does not make sense when trying to map source to target units. It 9 | only makes sense for source to source. 10 | """ 11 | def __init__(self): 12 | # Identity map only works for RSA metric. It doesn't make sense to use 13 | # the correlation score function since number of sources could be different 14 | # from the number of targets. 15 | super(IdentityNeuralMap, self).__init__(score_func="rsa") 16 | 17 | def fit(self, X, Y): 18 | # Don't need to do any fitting 19 | self._fitted = True 20 | self._n_source = X.shape[1] 21 | self._n_targets = Y.shape[1] 22 | 23 | def predict(self, X): 24 | # Return identity 25 | assert X.ndim == 2 26 | assert self._n_source == X.shape[1] 27 | return X 28 | 29 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 XXX 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/loss_functions/loss_function_base.py: -------------------------------------------------------------------------------- 1 | import torch.nn as nn 2 | 3 | __all__ = ["LossFunctionBase"] 4 | 5 | 6 | class LossFunctionBase(nn.Module): 7 | def __init__(self): 8 | super(LossFunctionBase, self).__init__() 9 | 10 | def trainable_parameters(self): 11 | """ 12 | Should return an iterable for parameters to be trained in the 13 | loss function. For example, could return self.model.parameters(). 14 | """ 15 | raise NotImplementedError 16 | 17 | def forward(self, model, inp, target, **kwargs): 18 | """ 19 | Computes the loss function given a model, inputs and labels. 20 | 21 | Inputs: 22 | model : (torch.nn.Module) the model being trained 23 | inp : (torch.FloatTensor) (N, C, H, W); input images 24 | target : (torch.LongTensor) (N,); image labels 25 | 26 | Outputs: 27 | loss : (torch.Tensor) scalar; loss value 28 | preds : (torch.Tensor) (N, K); model predictions for K classes 29 | """ 30 | raise NotImplementedError 31 | -------------------------------------------------------------------------------- /similarity/registry/thingsvision/thingsvision/core/cka/helpers.py: -------------------------------------------------------------------------------- 1 | from typing import Optional, Union 2 | 3 | from .cka_numpy import CKANumPy 4 | from .cka_torch import CKATorch 5 | 6 | BACKENDS = ["numpy", "torch"] 7 | 8 | 9 | def get_cka( 10 | backend: str, 11 | m: int, 12 | kernel: str = "linear", 13 | unbiased: bool = False, 14 | sigma: Optional[float] = 1.0, 15 | device: Optional[str] = None, 16 | verbose: Optional[bool] = False, 17 | ) -> Union[CKANumPy, CKATorch]: 18 | """Return a NumPy or PyTorch implementation of CKA.""" 19 | assert backend in BACKENDS, f"\nSupported backends are: {BACKENDS}\n" 20 | if backend == "numpy": 21 | cka = CKANumPy(m=m, kernel=kernel, unbiased=unbiased, sigma=sigma) 22 | else: 23 | assert isinstance( 24 | device, str 25 | ), "\nDevice must be set for using PyTorch backend.\n" 26 | cka = CKATorch( 27 | m=m, 28 | kernel=kernel, 29 | unbiased=unbiased, 30 | device=device, 31 | sigma=sigma, 32 | verbose=verbose, 33 | ) 34 | return cka 35 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/depth_prediction/simplified_mousenet_six_stream_depth_pred_hour_glass_pbrnet_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "depthpredloss_simplified_mousenet_six_stream", 6 | "exp_id": "exp1_hour_glass", 7 | "trainer": "DepthPrediction", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [9], 11 | "ddp_port": 20288, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "simplified_mousenet_depth_hour_glass_six_stream", 15 | "loss_params": { 16 | "class": "DepthPredictionHourGlassLoss" 17 | }, 18 | "optimizer": "SGD", 19 | "optimizer_params": { 20 | "train_batch_size": 256, 21 | "val_batch_size": 1024, 22 | "initial_lr": 1e-4, 23 | "lr_decay_schedule": [15, 30, 45], 24 | "lr_decay_rate": 0.1, 25 | "momentum": 0.9, 26 | "weight_decay": 1e-4 27 | }, 28 | "num_epochs": 50, 29 | "save_freq": 5, 30 | "resume_checkpoint": null 31 | } 32 | 33 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/depth_prediction/simplified_mousenet_dual_stream_depth_pred_hour_glass_pbrnet_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "depthpredloss_simplified_mousenet_dual_stream", 6 | "exp_id": "exp1_hour_glass", 7 | "trainer": "DepthPrediction", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [4], 11 | "ddp_port": 20200, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "simplified_mousenet_depth_hour_glass_dual_stream", 15 | "loss_params": { 16 | "class": "DepthPredictionHourGlassLoss" 17 | }, 18 | "optimizer": "SGD", 19 | "optimizer_params": { 20 | "train_batch_size": 256, 21 | "val_batch_size": 1024, 22 | "initial_lr": 1e-4, 23 | "lr_decay_schedule": [15, 30, 45], 24 | "lr_decay_rate": 0.1, 25 | "momentum": 0.9, 26 | "weight_decay": 1e-4 27 | }, 28 | "num_epochs": 50, 29 | "save_freq": 5, 30 | "resume_checkpoint": null 31 | } 32 | 33 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/rotnet/simplified_mousenet_six_stream_visp_3x3_rotnet_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "ddp_port": 30310, 5 | "db_name": "imagenet", 6 | "coll_name": "rotnetloss_simplified_mousenet_six_stream_visp3x3_64x64_input", 7 | "exp_id": "gpuexp0", 8 | "trainer": "RotNet", 9 | "cuda": true, 10 | "tpu": false, 11 | "gpus": [1], 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "simplified_mousenet_six_stream_visp_3x3_rotnet", 15 | "loss_params": { 16 | "class": "RotNetLoss", 17 | "model_output_dim": 18432 18 | }, 19 | "optimizer_params": { 20 | "train_batch_size": 192, 21 | "val_batch_size": 1024, 22 | "initial_lr": 0.01, 23 | "lr_decay_schedule": [15,30,45,50], 24 | "lr_decay_rate": 0.1, 25 | "nesterov": true, 26 | "momentum": 0.9, 27 | "weight_decay": 5e-4 28 | }, 29 | "num_epochs": 50, 30 | "save_freq": 5, 31 | "resume_checkpoint": null 32 | } 33 | 34 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/depth_prediction/simplified_mousenet_single_stream_depth_pred_hour_glass_pbrnet_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "depthpredloss_simplified_mousenet_single_stream", 6 | "exp_id": "exp2_hour_glass", 7 | "trainer": "DepthPrediction", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [5], 11 | "ddp_port": 20480, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "simplified_mousenet_depth_hour_glass_single_stream", 15 | "loss_params": { 16 | "class": "DepthPredictionHourGlassLoss" 17 | }, 18 | "optimizer": "SGD", 19 | "optimizer_params": { 20 | "train_batch_size": 256, 21 | "val_batch_size": 1024, 22 | "initial_lr": 1e-4, 23 | "lr_decay_schedule": [15, 30, 45], 24 | "lr_decay_rate": 0.1, 25 | "momentum": 0.9, 26 | "weight_decay": 1e-4 27 | }, 28 | "num_epochs": 50, 29 | "save_freq": 5, 30 | "resume_checkpoint": null 31 | } 32 | 33 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/resolution/alexnet_84x84_ir.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "ddp_port": 30303, 5 | "db_name": "imagenet", 6 | "coll_name": "irloss_alexnet_84x84", 7 | "exp_id": "exp0", 8 | "trainer": "InstanceDiscrimination", 9 | "cuda": true, 10 | "tpu": false, 11 | "gpus": [0], 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "alexnet_ir_84x84", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 4096 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 1024, 26 | "initial_lr": 0.003, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/vgg16_64x64_ir_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_vgg16_64x64_input", 6 | "exp_id": "gpuexp0", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [1], 11 | "ddp_port": 7609, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "vgg16_ir_64x64", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 4096 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 1024, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/resnet18_64x64_ir_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_resnet18_64x64_input", 6 | "exp_id": "gpuexp0", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [0], 11 | "ddp_port": 7804, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "resnet18_ir_64x64", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 512 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 1024, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 1e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/resnet34_64x64_ir_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_resnet34_64x64_input", 6 | "exp_id": "gpuexp0", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [1], 11 | "ddp_port": 7906, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "resnet34_ir_64x64", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 512 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 1024, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 1e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/resolution/alexnet_104x104_ir.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "ddp_port": 30304, 5 | "db_name": "imagenet", 6 | "coll_name": "irloss_alexnet_104x104", 7 | "exp_id": "exp0", 8 | "trainer": "InstanceDiscrimination", 9 | "cuda": true, 10 | "tpu": false, 11 | "gpus": [1], 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "alexnet_ir_104x104", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 4096 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 1024, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/resolution/alexnet_124x124_ir.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "ddp_port": 30305, 5 | "db_name": "imagenet", 6 | "coll_name": "irloss_alexnet_124x124", 7 | "exp_id": "exp0", 8 | "trainer": "InstanceDiscrimination", 9 | "cuda": true, 10 | "tpu": false, 11 | "gpus": [2], 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "alexnet_ir_124x124", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 4096 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 1024, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/resolution/alexnet_144x144_ir.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "ddp_port": 30306, 5 | "db_name": "imagenet", 6 | "coll_name": "irloss_alexnet_144x144", 7 | "exp_id": "exp0", 8 | "trainer": "InstanceDiscrimination", 9 | "cuda": true, 10 | "tpu": false, 11 | "gpus": [3], 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "alexnet_ir_144x144", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 4096 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 1024, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/resolution/alexnet_164x164_ir.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "ddp_port": 30307, 5 | "db_name": "imagenet", 6 | "coll_name": "irloss_alexnet_164x164", 7 | "exp_id": "exp0", 8 | "trainer": "InstanceDiscrimination", 9 | "cuda": true, 10 | "tpu": false, 11 | "gpus": [4], 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "alexnet_ir_164x164", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 4096 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 1024, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/resolution/alexnet_184x184_ir.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "ddp_port": 30308, 5 | "db_name": "imagenet", 6 | "coll_name": "irloss_alexnet_184x184", 7 | "exp_id": "exp0", 8 | "trainer": "InstanceDiscrimination", 9 | "cuda": true, 10 | "tpu": false, 11 | "gpus": [5], 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "alexnet_ir_184x184", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 4096 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 1024, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/resolution/alexnet_204x204_ir.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "ddp_port": 30309, 5 | "db_name": "imagenet", 6 | "coll_name": "irloss_alexnet_204x204", 7 | "exp_id": "exp0", 8 | "trainer": "InstanceDiscrimination", 9 | "cuda": true, 10 | "tpu": false, 11 | "gpus": [6], 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "alexnet_ir_204x204", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 4096 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 1024, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/simplified_mousenet_single_stream_ir_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_simplified_mousenet_single_stream_64x64_input", 6 | "exp_id": "exp1", 7 | "trainer": "InstanceDiscrimination", 8 | "gpus": null, 9 | "tpu": "mv-tpu-03", 10 | "seed": 1, 11 | "dataloader_workers": 32, 12 | "model": "simplified_mousenet_single_stream_ir", 13 | "loss_params": { 14 | "class": "InstanceDiscriminationLoss", 15 | "m": 4096, 16 | "gamma": 0.5, 17 | "tau": 0.07, 18 | "embedding_dim": 128, 19 | "model_output_dim": 9216 20 | }, 21 | "optimizer_params": { 22 | "train_batch_size": 256, 23 | "val_batch_size": 1024, 24 | "initial_lr": 0.03, 25 | "lr_decay_schedule": [120, 160], 26 | "lr_decay_rate": 0.1, 27 | "momentum": 0.9, 28 | "weight_decay": 5e-4 29 | }, 30 | "num_epochs": 200, 31 | "save_freq": 10, 32 | "resume_checkpoint": null 33 | } 34 | 35 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/alexnet_bn_ir.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "demo_alexnet_bn_ir_64x64", 6 | "exp_id": "gpuexplowlr0", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [0], 11 | "ddp_port": 7809, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "alexnet_bn_ir_64x64_input_pool_6", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 4096 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 1024, 26 | "initial_lr": 0.003, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/resnet101_64x64_ir_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_resnet101_64x64_input", 6 | "exp_id": "gpuexp0", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [1], 11 | "ddp_port": 7807, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "resnet101_ir_64x64", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 2048 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 1024, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 1e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/resnet152_64x64_ir_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_resnet152_64x64_input", 6 | "exp_id": "gpuexp0", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [2], 11 | "ddp_port": 7907, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "resnet152_ir_64x64", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 2048 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 1024, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 1e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/resnet50_64x64_ir_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_resnet50_64x64_input", 6 | "exp_id": "gpuexp0", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [0], 11 | "ddp_port": 7806, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "resnet50_ir_64x64", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 2048 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 1024, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 1e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/resolution/dual_32x32_ir.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_dual_32x32", 6 | "exp_id": "exp1", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [4], 11 | "ddp_port": 8701, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "simplified_mousenet_dual_stream_visp_3x3_ir_32x32", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 18432 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 256, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/resolution/dual_44x44_ir.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_dual_44x44", 6 | "exp_id": "exp1", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [9], 11 | "ddp_port": 8702, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "simplified_mousenet_dual_stream_visp_3x3_ir_44x44", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 18432 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 256, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/resolution/dual_84x84_ir.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_dual_84x84", 6 | "exp_id": "exp1", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [7], 11 | "ddp_port": 8802, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "simplified_mousenet_dual_stream_visp_3x3_ir_84x84", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 18432 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 256, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/simplified_mousenet_dual_stream_visp_3x3_ir_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_simplified_mousenet_dual_stream_visp3x3_64x64_input", 6 | "exp_id": "exp1", 7 | "trainer": "InstanceDiscrimination", 8 | "gpus": null, 9 | "tpu": "mv-tpu-03", 10 | "seed": 1, 11 | "dataloader_workers": 32, 12 | "model": "simplified_mousenet_dual_stream_visp_3x3_ir", 13 | "loss_params": { 14 | "class": "InstanceDiscriminationLoss", 15 | "m": 4096, 16 | "gamma": 0.5, 17 | "tau": 0.07, 18 | "embedding_dim": 128, 19 | "model_output_dim": 18432 20 | }, 21 | "optimizer_params": { 22 | "train_batch_size": 256, 23 | "val_batch_size": 1024, 24 | "initial_lr": 0.03, 25 | "lr_decay_schedule": [120, 160], 26 | "lr_decay_rate": 0.1, 27 | "momentum": 0.9, 28 | "weight_decay": 5e-4 29 | }, 30 | "num_epochs": 200, 31 | "save_freq": 10, 32 | "resume_checkpoint": null 33 | } 34 | 35 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/simplified_mousenet_six_stream_visp_3x3_ir_trainer_tpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "gs://mouse_vision_models/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_simplified_mousenet_six_stream_visp3x3_64x64_input", 6 | "exp_id": "exp1", 7 | "trainer": "InstanceDiscrimination", 8 | "gpus": null, 9 | "tpu": "mv-tpu-04", 10 | "seed": 1, 11 | "dataloader_workers": 32, 12 | "model": "simplified_mousenet_six_stream_visp_3x3_ir", 13 | "loss_params": { 14 | "class": "InstanceDiscriminationLoss", 15 | "m": 4096, 16 | "gamma": 0.5, 17 | "tau": 0.07, 18 | "embedding_dim": 128, 19 | "model_output_dim": 18432 20 | }, 21 | "optimizer_params": { 22 | "train_batch_size": 256, 23 | "val_batch_size": 1024, 24 | "initial_lr": 0.03, 25 | "lr_decay_schedule": [120, 160], 26 | "lr_decay_rate": 0.1, 27 | "momentum": 0.9, 28 | "weight_decay": 5e-4 29 | }, 30 | "num_epochs": 200, 31 | "save_freq": 10, 32 | "resume_checkpoint": null 33 | } 34 | 35 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/resolution/dual_104x104_ir.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_dual_104x104", 6 | "exp_id": "exp1", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [8], 11 | "ddp_port": 8803, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "simplified_mousenet_dual_stream_visp_3x3_ir_104x104", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 18432 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 256, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/resolution/dual_124x124_ir.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_dual_124x124", 6 | "exp_id": "exp1", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [9], 11 | "ddp_port": 8804, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "simplified_mousenet_dual_stream_visp_3x3_ir_124x124", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 18432 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 256, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/resolution/dual_144x144_ir.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_dual_144x144", 6 | "exp_id": "exp1", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [0], 11 | "ddp_port": 8805, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "simplified_mousenet_dual_stream_visp_3x3_ir_144x144", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 18432 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 256, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/resolution/dual_164x164_ir.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_dual_164x164", 6 | "exp_id": "exp1", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [6], 11 | "ddp_port": 8806, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "simplified_mousenet_dual_stream_visp_3x3_ir_164x164", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 18432 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 256, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/resolution/dual_184x184_ir.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_dual_184x184", 6 | "exp_id": "exp1", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [9], 11 | "ddp_port": 8807, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "simplified_mousenet_dual_stream_visp_3x3_ir_184x184", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 18432 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 256, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/resolution/dual_204x204_ir.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_dual_204x204", 6 | "exp_id": "exp1", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [4], 11 | "ddp_port": 8808, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "simplified_mousenet_dual_stream_visp_3x3_ir_204x204", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 18432 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 256, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/resi/__init__.py: -------------------------------------------------------------------------------- 1 | # https://github.com/mklabunde/resi 2 | from functools import partial 3 | from pathlib import Path 4 | import sys 5 | 6 | 7 | import similarity 8 | 9 | 10 | # renamed package to 'resi' because of conflicting package name 'repsim' 11 | dir_path = Path(__file__).parent 12 | sys.path.append(str(dir_path)) 13 | from .resi.measures import ALL_MEASURES 14 | 15 | for name, measure in ALL_MEASURES.items(): 16 | if name == "GeometryScore": 17 | # skip because of dependency installation issues 18 | continue 19 | if name == "RSA": 20 | # RSA registered separately below 21 | continue 22 | 23 | similarity.register( 24 | f"resi/{name}", 25 | # assume inputs of format n x d 26 | partial(measure, shape="nd"), 27 | ) 28 | 29 | 30 | from resi.measures.rsa import representational_similarity_analysis 31 | 32 | for inner in ["correlation", "euclidean"]: 33 | for outer in ["euclidean", "spearman"]: 34 | similarity.register( 35 | f"resi/RSA_{inner}_{outer}", 36 | partial(representational_similarity_analysis, shape="nd", inner=inner, outer=outer), 37 | ) 38 | -------------------------------------------------------------------------------- /similarity/registry/contrasim/contrasim/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 technion-cs-nlp 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/alexnet_64x64_input_pool_6_ir_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_alexnet_64x64_input_pool_6", 6 | "exp_id": "gpuexp0", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [6], 11 | "ddp_port": 7803, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "alexnet_ir_64x64_input_pool_6", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 4096 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 1024, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/alexnet_64x64_input_pool_6_ir_trainer_gpu_adam.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_alexnet_64x64_input_pool_6", 6 | "exp_id": "gpuexpadam0", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [6], 11 | "ddp_port": 7806, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "alexnet_ir_64x64_input_pool_6", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 4096 22 | }, 23 | "optimizer": "Adam", 24 | "optimizer_params": { 25 | "train_batch_size": 256, 26 | "val_batch_size": 1024, 27 | "initial_lr": 1e-4, 28 | "lr_decay_schedule": [120, 160], 29 | "lr_decay_rate": 0.1, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/alexnet_bn_64x64_input_pool_6_ir_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_alexnet_bn_64x64_input_pool_6", 6 | "exp_id": "gpuexp0", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [6], 11 | "ddp_port": 7807, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "alexnet_bn_ir_64x64_input_pool_6", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 4096 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 1024, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/alexnet_64x64_input_pool_6_ir_trainer_gpu_lowlr.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_alexnet_64x64_input_pool_6", 6 | "exp_id": "gpuexplowlr0", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [6], 11 | "ddp_port": 7803, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "alexnet_ir_64x64_input_pool_6", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 4096 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 1024, 26 | "initial_lr": 0.003, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/alexnet_dmlocomotion_ir_trainer_gpu_lowlr.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "dmlocomotion", 5 | "coll_name": "irloss_alexnet_64x64_input_pool_6", 6 | "exp_id": "run1", 7 | "trainer": "DMLocomotionInstanceDiscriminationTrainer", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [1], 11 | "ddp_port": 5809, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "alexnet_ir_dmlocomotion", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 4096 22 | }, 23 | "optimizer_params": { 24 | "num_train_imgs": 1281167, 25 | "train_batch_size": 256, 26 | "initial_lr": 0.003, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/deepdive/__init__.py: -------------------------------------------------------------------------------- 1 | from functools import partial 2 | from similarity import register 3 | from .mapping_methods import neural_regression 4 | 5 | 6 | # TODO: define rdm_compare but not computing rdm 7 | # too complex to use 8 | # https://github.com/ColinConwell/DeepDive/blob/main/deepdive/feature_reduction.py 9 | 10 | 11 | @register("postprocessing/mean_score") 12 | def mean_score(scores): 13 | return scores.mean() 14 | 15 | 16 | register = partial( 17 | register, 18 | postprocessing=["mean_score"] 19 | ) 20 | 21 | score_types = ["pearson_r", "pearson_r2", "r2"] 22 | 23 | 24 | for score_type in score_types: 25 | register( 26 | f"deepdive/neural_regression-alpha1-{score_type}-5folds_cv", 27 | partial(neural_regression, alphas=[1], score_type=score_type), 28 | ) 29 | register( 30 | f"deepdive/neural_regression-alpha0-{score_type}-5folds_cv", 31 | partial(neural_regression, alphas=[0], score_type=score_type), 32 | ) 33 | 34 | # TODO: cv_splits=None returns regression object... 35 | # register( 36 | # "measure/deepdive/ridge-lambda1-pearson_r-no_cv", 37 | # partial(neural_regression, cv_splits=None), 38 | # ) -------------------------------------------------------------------------------- /similarity/registry/llm_repsim/llmcomp/measures/cka.py: -------------------------------------------------------------------------------- 1 | from typing import Union 2 | 3 | import numpy.typing as npt 4 | import torch 5 | 6 | from llmcomp.measures.utils import to_torch_if_needed 7 | 8 | 9 | def centered_kernel_alignment( 10 | R: Union[torch.Tensor, npt.NDArray], Rp: Union[torch.Tensor, npt.NDArray] 11 | ) -> float: 12 | """Kornblith et al. (2019)""" 13 | R, Rp = to_torch_if_needed(R, Rp) 14 | N, D = R.size() 15 | 16 | R = R - R.mean(dim=0)[None, :] 17 | Rp = Rp - Rp.mean(dim=0)[None, :] 18 | 19 | if N < D: 20 | S = R @ R.T 21 | Sp = Rp @ Rp.T # noqa: E741 22 | return (hsic(S, Sp) / torch.sqrt(hsic(S, S) * hsic(Sp, Sp))).item() 23 | else: 24 | return ( 25 | torch.linalg.norm(Rp.T @ R, ord="fro") ** 2 26 | / ( 27 | torch.linalg.norm(R.T @ R, ord="fro") 28 | * torch.linalg.norm(Rp.T @ Rp, ord="fro") 29 | ) 30 | ).item() 31 | 32 | 33 | def hsic(S: torch.Tensor, Sp: torch.Tensor) -> torch.Tensor: # noqa: E741 34 | S = S - S.mean(dim=0)[:, None] 35 | Sp = Sp - Sp.mean(dim=0)[:, None] # noqa: E741 36 | return torch.trace(S @ Sp) / (S.size(0) - 1) ** 2 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/alexnet_bn_64x64_input_pool_6_ir_trainer_gpu_lowlr.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_alexnet_bn_64x64_input_pool_6", 6 | "exp_id": "gpuexplowlr0", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [3], 11 | "ddp_port": 7809, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "alexnet_bn_ir_64x64_input_pool_6", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 4096 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 1024, 26 | "initial_lr": 0.003, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/alexnet_224x224_ir.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "ddp_port": 30303, 5 | "db_name": "imagenet", 6 | "coll_name": "irloss_alexnet_224x224", 7 | "exp_id": "exp0", 8 | "trainer": "InstanceDiscrimination", 9 | "cuda": true, 10 | "tpu": false, 11 | "gpus": [2], 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "alexnet_ir_224x224", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 4096 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 1024, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 1e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": "/mnt/fs5/nclkong/trained_models/mouse_vision/imagenet/irloss_alexnet_224x224/exp0/checkpoint.pt" 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/simplified_mousenet_single_stream_ir_trainer_gpu_224px.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_simplified_mousenet_single_stream_224x224_input", 6 | "exp_id": "gpuexp0", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [1], 11 | "ddp_port": 8801, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "simplified_mousenet_single_stream_ir_224x224", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 9216 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 1024, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/llm_repsim/llmcomp/measures/procrustes.py: -------------------------------------------------------------------------------- 1 | from typing import Union 2 | 3 | import numpy as np 4 | import numpy.typing as npt 5 | import scipy.linalg 6 | import scipy.optimize 7 | import torch 8 | 9 | from llmcomp.measures.utils import adjust_dimensionality, to_numpy_if_needed 10 | 11 | 12 | def orthogonal_procrustes( 13 | R: Union[torch.Tensor, npt.NDArray], Rp: Union[torch.Tensor, npt.NDArray] 14 | ) -> float: 15 | R, Rp = to_numpy_if_needed(R, Rp) 16 | R, Rp = adjust_dimensionality(R, Rp) 17 | nucnorm = scipy.linalg.orthogonal_procrustes(R, Rp)[1] 18 | return np.sqrt( 19 | -2 * nucnorm 20 | + np.linalg.norm(R, ord="fro") ** 2 21 | + np.linalg.norm(Rp, ord="fro") ** 2 22 | ) 23 | 24 | 25 | def aligned_cossim( 26 | R: Union[torch.Tensor, npt.NDArray], Rp: Union[torch.Tensor, npt.NDArray] 27 | ) -> float: 28 | R, Rp = to_numpy_if_needed(R, Rp) 29 | R, Rp = adjust_dimensionality(R, Rp) 30 | align, _ = scipy.linalg.orthogonal_procrustes(R, Rp) 31 | 32 | R_aligned = R @ align 33 | sum_cossim = 0 34 | for r, rp in zip(R_aligned, Rp): 35 | sum_cossim += r.dot(rp) / (np.linalg.norm(r) * np.linalg.norm(rp)) 36 | return sum_cossim / R.shape[0] 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/simplified_mousenet_dual_stream_visp_3x3_ir_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_simplified_mousenet_dual_stream_visp3x3_64x64_input", 6 | "exp_id": "gpuexp0", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [7], 11 | "ddp_port": 8804, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "simplified_mousenet_dual_stream_visp_3x3_ir", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 18432 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 1024, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/simplified_mousenet_six_stream_visp_3x3_ir_trainer_gpu.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_simplified_mousenet_six_stream_visp3x3_64x64_input", 6 | "exp_id": "gpuexp0", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [9], 11 | "ddp_port": 8803, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "simplified_mousenet_six_stream_visp_3x3_ir", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 18432 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 1024, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/brainscore/brainscore/metrics/anatomy.py: -------------------------------------------------------------------------------- 1 | import networkx as nx 2 | 3 | from brainscore.metrics import Metric 4 | 5 | ventral_stream = nx.DiGraph() # derived from Felleman & van Essen 6 | ventral_stream.add_edge('input', 'V1') 7 | ventral_stream.add_edge('V1', 'V2') 8 | ventral_stream.add_edge('V1', 'V4') 9 | ventral_stream.add_edge('V2', 'V1') 10 | ventral_stream.add_edge('V2', 'V4') 11 | ventral_stream.add_edge('V4', 'V1') 12 | ventral_stream.add_edge('V4', 'V2') 13 | ventral_stream.add_edge('V4', 'pIT') 14 | ventral_stream.add_edge('V4', 'cIT') 15 | ventral_stream.add_edge('V4', 'aIT') 16 | ventral_stream.add_edge('pIT', 'V4') 17 | ventral_stream.add_edge('pIT', 'cIT') 18 | ventral_stream.add_edge('pIT', 'aIT') 19 | ventral_stream.add_edge('cIT', 'V4') 20 | ventral_stream.add_edge('cIT', 'pIT') 21 | ventral_stream.add_edge('cIT', 'aIT') 22 | ventral_stream.add_edge('aIT', 'V4') 23 | ventral_stream.add_edge('aIT', 'pIT') 24 | ventral_stream.add_edge('aIT', 'cIT') 25 | 26 | 27 | class EdgeRatioMetric(Metric): 28 | def __call__(self, source_graph, target_graph): 29 | unmatched = [edge for edge in target_graph.edges() if edge not in source_graph.edges()] 30 | return 1 - len(unmatched) / len(target_graph.edges()) 31 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/test_ir_trainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/imagenet/mouse_test/", 3 | "port": 29029, 4 | "ddp_port": 30303, 5 | "db_name": "imagenet", 6 | "coll_name": "irloss_resnet18", 7 | "exp_id": "test_ir_exp04", 8 | "trainer": "InstanceDiscrimination", 9 | "cuda": true, 10 | "tpu": false, 11 | "gpus": [2,4], 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "resnet18_ir", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 512 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 1024, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 1e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": "/mnt/fs5/nclkong/trained_models/imagenet/mouse_test/imagenet/irloss_resnet18/test_ir_exp04/checkpoint.pt" 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/simplified_mousenet_six_stream_visp_3x3_ir_trainer_gpu_lowlr.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_simplified_mousenet_six_stream_visp3x3_64x64_input", 6 | "exp_id": "gpuexplowlr0", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [0], 11 | "ddp_port": 8803, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "simplified_mousenet_six_stream_visp_3x3_ir", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 18432 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 1024, 26 | "initial_lr": 0.003, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/sim_metric/utils.py: -------------------------------------------------------------------------------- 1 | """ 2 | Code taken from sim_metroc/dists/score_pair.py and packaged into functions 3 | """ 4 | import numpy as np 5 | from .dists import scoring 6 | 7 | 8 | def row_centering(rep1, rep2): 9 | # center each row 10 | rep1 = rep1 - rep1.mean(axis=1, keepdims=True) 11 | rep2 = rep2 - rep2.mean(axis=1, keepdims=True) 12 | return rep1, rep2 13 | 14 | 15 | def normalize(rep1, rep2): 16 | # normalize each representation 17 | rep1 = rep1 / np.linalg.norm(rep1) 18 | rep2 = rep2 / np.linalg.norm(rep2) 19 | return rep1, rep2 20 | 21 | 22 | def pwcca_dist(rep1, rep2): 23 | cca_u, cca_rho, cca_vh, transformed_rep1, transformed_rep2 = scoring.cca_decomp( 24 | rep1, rep2 25 | ) 26 | return scoring.pwcca_dist(rep1, cca_rho, transformed_rep1) 27 | 28 | 29 | def mean_sq_cca_corr(rep1, rep2): 30 | cca_u, cca_rho, cca_vh, transformed_rep1, transformed_rep2 = scoring.cca_decomp( 31 | rep1, rep2 32 | ) 33 | return scoring.mean_sq_cca_corr(cca_rho) 34 | 35 | 36 | def mean_cca_corr(rep1, rep2): 37 | cca_u, cca_rho, cca_vh, transformed_rep1, transformed_rep2 = scoring.cca_decomp( 38 | rep1, rep2 39 | ) 40 | return scoring.mean_cca_corr(cca_rho) 41 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/ir/simplified_mousenet_dual_stream_visp_3x3_ir_trainer_gpu_224px.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "irloss_simplified_mousenet_dual_stream_visp3x3_224x224_input", 6 | "exp_id": "gpuexp1", 7 | "trainer": "InstanceDiscrimination", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [2], 11 | "ddp_port": 8802, 12 | "seed": 1, 13 | "dataloader_workers": 32, 14 | "model": "simplified_mousenet_dual_stream_visp_3x3_ir_224x224", 15 | "loss_params": { 16 | "class": "InstanceDiscriminationLoss", 17 | "m": 4096, 18 | "gamma": 0.5, 19 | "tau": 0.07, 20 | "embedding_dim": 128, 21 | "model_output_dim": 18432 22 | }, 23 | "optimizer_params": { 24 | "train_batch_size": 256, 25 | "val_batch_size": 256, 26 | "initial_lr": 0.03, 27 | "lr_decay_schedule": [120, 160], 28 | "lr_decay_rate": 0.1, 29 | "momentum": 0.9, 30 | "weight_decay": 5e-4 31 | }, 32 | "num_epochs": 200, 33 | "save_freq": 10, 34 | "resume_checkpoint": null 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/drfrankenstein/src/comparators/compare_functions/ps_inv.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | 4 | def ps_inv(x1, x2): 5 | x1 = rearrange_activations(x1) 6 | x2 = rearrange_activations(x2) 7 | 8 | if not x1.shape[0] == x2.shape[0]: 9 | raise ValueError('Spatial size of compared neurons must match when ' \ 10 | 'calculating psuedo inverse matrix.') 11 | 12 | # Get transformation matrix shape 13 | shape = list(x1.shape) 14 | shape[-1] += 1 15 | 16 | # Calculate pseudo inverse 17 | x1_ones = np.ones(shape) 18 | x1_ones[:, :-1] = x1 19 | A_ones = np.matmul(np.linalg.pinv(x1_ones), x2).T 20 | 21 | # Get weights and bias 22 | w = A_ones[..., :-1] 23 | b = A_ones[..., -1] 24 | 25 | return {'w': w, 'b': b} 26 | 27 | 28 | def rearrange_activations(activations): 29 | is_convolution = len(activations.shape) == 4 30 | if is_convolution: 31 | activations = np.transpose(activations, axes=[0, 2, 3, 1]) 32 | n_channels = activations.shape[-1] 33 | new_shape = (-1, n_channels) 34 | else: 35 | new_shape = (activations.shape[0], -1) 36 | 37 | reshaped_activations = activations.reshape(*new_shape) 38 | return reshaped_activations 39 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/custom_heads/linear_readout.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import torch.nn as nn 3 | 4 | from mouse_vision.model_training.custom_heads.custom_head_base import CustomHeadBase 5 | 6 | __all__ = ["LinearReadout"] 7 | 8 | class LinearReadout(CustomHeadBase): 9 | def __init__(self, model_output_dim=512, num_classes=1000): 10 | super(LinearReadout, self).__init__() 11 | 12 | self.model_output_dim = model_output_dim 13 | self.num_classes = num_classes 14 | 15 | # Initialize classifier head for transfer learning 16 | self.initialize_classifier() 17 | 18 | def initialize_classifier(self): 19 | assert hasattr(self, "classifier") 20 | 21 | self.classifier.add_module( 22 | "fc", nn.Sequential( 23 | nn.Flatten(start_dim=1), 24 | nn.Linear(self.model_output_dim, self.num_classes) 25 | ) 26 | ) 27 | 28 | if __name__ == "__main__": 29 | import torch 30 | 31 | kwargs = {"model_output_dim": 1024, "num_classes": 1000} 32 | l = LinearReadout(**kwargs) 33 | data = torch.rand(10, 1024) 34 | output = l(data) 35 | print(output.shape) 36 | print(l.classifier) 37 | 38 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/imagenet_datasets/imagenet_base.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from torch.utils import data 4 | from torchvision import datasets 5 | 6 | __all__ = ["ImageNetBase"] 7 | 8 | 9 | class ImageNetBase(data.Dataset): 10 | """ 11 | Base class for obtaining ImageNet data set. 12 | 13 | Arguments: 14 | is_train : (boolean) if training or validation set 15 | imagenet_dir : (string) base directory for ImageNet images. 16 | image_transforms : (torchvision.Transforms) object for image transforms. For 17 | example: transforms.Compose([transforms.ToTensor()]) 18 | """ 19 | 20 | def __init__(self, is_train, imagenet_dir, image_transforms): 21 | # Assumes imagenet_dir organization is: 22 | # /PATH/TO/IMAGENET/{train, val}/{synsets}/*.JPEG 23 | 24 | super(ImageNetBase, self).__init__() 25 | suffix = "train" if is_train else "val" 26 | self.dataset = datasets.ImageFolder( 27 | os.path.join(imagenet_dir, suffix), transform=image_transforms 28 | ) 29 | 30 | def __getitem__(self, index): 31 | raise NotImplementedError 32 | 33 | def __len__(self): 34 | return len(self.dataset) 35 | 36 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/depth_prediction/simplified_mousenet_single_stream_depth_pred_hour_glass_pbrnet_trainer_gpu_load.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "depthpredloss_simplified_mousenet_single_stream", 6 | "exp_id": "exp1_load_pretrained", 7 | "trainer": "DepthPrediction", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [3], 11 | "ddp_port": 30108, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "simplified_mousenet_depth_hour_glass_single_stream", 15 | "loss_params": { 16 | "class": "DepthPredictionHourGlassLoss" 17 | }, 18 | "optimizer": "Adam", 19 | "optimizer_params": { 20 | "train_batch_size": 256, 21 | "val_batch_size": 1024, 22 | "initial_lr": 1e-4, 23 | "lr_decay_schedule": [15, 30, 45], 24 | "lr_decay_rate": 0.1, 25 | "momentum": 0.9, 26 | "weight_decay": 5e-4 27 | }, 28 | "num_epochs": 50, 29 | "save_freq": 5, 30 | "resume_checkpoint": null, 31 | "model_checkpoint": "/mnt/fs5/nclkong/trained_models/mouse_vision/imagenet/xentloss_simplified_mousenet_single_stream_64x64_input/exp1/model_best.pt" 32 | } 33 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/finetune/finetune_resnet18_mocov2.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/imagenet/mouse_test/", 3 | "port": 29029, 4 | "ddp_port": 24058, 5 | "db_name": "imagenet", 6 | "coll_name": "mocov2loss_resnet18", 7 | "exp_id": "finetune_mocov2_resnet18_pre_avgpool_bs256_lr0.1_small_wd", 8 | "trainer": "FinetuneImageNet", 9 | "tpu": null, 10 | "gpus": [9], 11 | "seed": 1, 12 | "dataloader_workers": 8, 13 | "model": "resnet18_mocov2", 14 | "loss_params": { 15 | "class": "FinetuneLoss" 16 | }, 17 | "readout_params": { 18 | "class": "LinearReadout", 19 | "model_output_dim": 25088, 20 | "num_classes": 1000 21 | }, 22 | "optimizer_params": { 23 | "train_batch_size": 256, 24 | "val_batch_size": 1024, 25 | "initial_lr": 0.1, 26 | "lr_decay_schedule": [30,60], 27 | "lr_decay_rate": 0.1, 28 | "momentum": 0.9, 29 | "weight_decay": 1e-9 30 | }, 31 | "num_epochs": 90, 32 | "save_freq": 10, 33 | "resume_checkpoint": null, 34 | "model_checkpoint": "/mnt/fs5/nclkong/trained_models/imagenet/mouse_test/imagenet/mocov2loss_resnet18/test_imagenet_exp06/checkpoint_epoch_199.pt" 35 | } 36 | 37 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/depth_prediction/simplified_mousenet_six_stream_depth_pred_hour_glass_pbrnet_trainer_gpu_load.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "depthpredloss_simplified_mousenet_six_stream", 6 | "exp_id": "exp1_load_pretrained", 7 | "trainer": "DepthPrediction", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [1], 11 | "ddp_port": 20188, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "simplified_mousenet_depth_hour_glass_six_stream", 15 | "loss_params": { 16 | "class": "DepthPredictionHourGlassLoss" 17 | }, 18 | "optimizer": "Adam", 19 | "optimizer_params": { 20 | "train_batch_size": 256, 21 | "val_batch_size": 1024, 22 | "initial_lr": 1e-4, 23 | "lr_decay_schedule": [15, 30, 45], 24 | "lr_decay_rate": 0.1, 25 | "momentum": 0.9, 26 | "weight_decay": 5e-4 27 | }, 28 | "num_epochs": 50, 29 | "save_freq": 5, 30 | "resume_checkpoint": null, 31 | "model_checkpoint": "/mnt/fs5/nclkong/trained_models/mouse_vision/imagenet/xentloss_simplified_mousenet_six_stream_visp_3x3_bn_64x64_input/gpulowlr0/model_best.pt" 32 | } 33 | -------------------------------------------------------------------------------- /similarity/registry/mouse_vision/mouse_vision/model_training/configs/depth_prediction/simplified_mousenet_dual_stream_depth_pred_hour_glass_pbrnet_trainer_gpu_load.json: -------------------------------------------------------------------------------- 1 | { 2 | "save_prefix": "/mnt/fs5/nclkong/trained_models/mouse_vision/", 3 | "port": 29029, 4 | "db_name": "imagenet", 5 | "coll_name": "depthpredloss_simplified_mousenet_dual_stream", 6 | "exp_id": "exp1_load_pretrained", 7 | "trainer": "DepthPrediction", 8 | "cuda": true, 9 | "tpu": false, 10 | "gpus": [3], 11 | "ddp_port": 30188, 12 | "seed": 1, 13 | "dataloader_workers": 8, 14 | "model": "simplified_mousenet_depth_hour_glass_dual_stream", 15 | "loss_params": { 16 | "class": "DepthPredictionHourGlassLoss" 17 | }, 18 | "optimizer": "Adam", 19 | "optimizer_params": { 20 | "train_batch_size": 256, 21 | "val_batch_size": 1024, 22 | "initial_lr": 1e-4, 23 | "lr_decay_schedule": [15, 30, 45], 24 | "lr_decay_rate": 0.1, 25 | "momentum": 0.9, 26 | "weight_decay": 5e-4 27 | }, 28 | "num_epochs": 50, 29 | "save_freq": 5, 30 | "resume_checkpoint": null, 31 | "model_checkpoint": "/mnt/fs5/nclkong/trained_models/mouse_vision/imagenet/xentloss_simplified_mousenet_dual_stream_visp_3x3_bn_64x64_input/gpuexp0/model_best.pt" 32 | } 33 | --------------------------------------------------------------------------------