| { |
| "architectures": ["Visual_Cortex_Amygdala"], |
| "model_type": "visual-valence-model", |
| "task": "image-valence-regression", |
| "source_repo": "https://github.com/lab-smile/FearConditioningAI", |
| "source_module": "models.VGG_Model", |
| "paper": "https://arxiv.org/abs/2607.19327", |
|
|
| "backbone": { |
| "name": "vgg16", |
| "pretrained_on": "imagenet-1k", |
| "batch_norm": false, |
| "frozen": true |
| }, |
|
|
| "shortcut_pathway": { |
| "name": "middleroad", |
| "source_vgg_layer_index": 10, |
| "pooling": { |
| "middleroad_maxpool": {"kernel_size": 29, "stride": 14}, |
| "global_maxpool_output_size": 2, |
| "maxpool1": {"kernel_size": 5, "stride": 3}, |
| "maxpool2": {"kernel_size": 9, "stride": 5}, |
| "maxpool3": {"kernel_size": 13, "stride": 7}, |
| "adaptive_avgpool_output_sizes": [1, 2] |
| }, |
| "attention": { |
| "type": "efficient_channel_attention", |
| "reference": "https://doi.org/10.1109/CVPR42600.2020.01155", |
| "conv1d_kernel_size": 3 |
| }, |
| "fc_layers": { |
| "input_size": 1024, |
| "hidden_sizes": [1024, 512], |
| "dropout": 0.5 |
| } |
| }, |
|
|
| "valence_module": { |
| "name": "VCA_FC", |
| "input_size": 4608, |
| "input_composition": {"highroad_features": 4096, "middleroad_features": 512}, |
| "hidden_sizes": [1024, 1024], |
| "dropout": 0.5, |
| "output_size": 1, |
| "output_activation": "sigmoid", |
| "output_rescale_range": [1, 9], |
| "output_semantics": "valence rating (1 = extreme displeasure, 9 = extreme pleasure)" |
| }, |
|
|
| "input": { |
| "image_size": 224, |
| "channels": 3, |
| "normalize_mean": [0.485, 0.456, 0.406], |
| "normalize_std": [0.229, 0.224, 0.225] |
| }, |
|
|
| "checkpoints": { |
| "stage0_videoframe_pretrain": { |
| "filename": "vca_ckvideo_batch128_lr2e-5_epoch20.pth", |
| "stage": "Stage 0 (trained from scratch on Videoframe)", |
| "trained_on": ["Cowen & Keltner (2017) Videoframe"], |
| "input_layout": "full-frame (no quadrant cropping)", |
| "val_pearson_r": 0.386, |
| "val_mse": 0.043 |
| }, |
| "stage1_iaps_finetune": { |
| "filename": "vca_IAPS_batch10_lr2e-4_epoch23.pth", |
| "stage": "Stage 1 (fine-tuned on full-size IAPS)", |
| "trained_on": ["Cowen & Keltner (2017) Videoframe", "IAPS full-size"], |
| "input_layout": "full-frame (no quadrant cropping)", |
| "val_pearson_r": 0.538, |
| "val_mse": 0.192 |
| }, |
| "pre_conditioning": { |
| "filename": "base_model_vca_IAPS_quadrant.pth", |
| "stage": "Stage 2 (quadrant fine-tuning), before Pavlovian conditioning", |
| "trained_on": ["Cowen & Keltner (2017) Videoframe", "IAPS full-size", "IAPS quadrant-cropped"], |
| "input_layout": "quadrant-cropped (US in quadrant 4)", |
| "val_pearson_r": null, |
| "val_mse": null, |
| "note": "See paper for definitive evaluation numbers." |
| }, |
| "post_conditioning_epoch1": { |
| "filename": "base_model_conditioned_orientation_epoch1.pth", |
| "stage": "Stage 3 (Pavlovian conditioning), epoch 1 of 100", |
| "trained_on": ["Cowen & Keltner (2017) Videoframe", "IAPS full-size", "IAPS quadrant-cropped", "IAPS Conditioning (US) x Gabor patch (CS)"], |
| "input_layout": "quadrant-cropped (CS in quadrant 2, US in quadrant 4)", |
| "val_pearson_r": 0.660, |
| "val_mse": 0.466, |
| "note": "Early/under-trained snapshot, kept for provenance; not representative of the final model." |
| }, |
| "post_conditioning": { |
| "filename": "base_model_conditioned_orientation_epoch100.pth", |
| "stage": "Stage 3 (Pavlovian conditioning), epoch 100 (final, used in the paper)", |
| "trained_on": ["Cowen & Keltner (2017) Videoframe", "IAPS full-size", "IAPS quadrant-cropped", "IAPS Conditioning (US) x Gabor patch (CS)"], |
| "input_layout": "quadrant-cropped (CS in quadrant 2, US in quadrant 4)", |
| "val_pearson_r": null, |
| "val_mse": null, |
| "note": "See paper for definitive evaluation numbers.", |
| "conditioning_paradigm": { |
| "cs_stimulus": "Gabor patch (45 deg or 135 deg orientation)", |
| "us_stimulus": "IAPS image (unpleasant paired with 45 deg CS, pleasant paired with 135 deg CS)", |
| "cs_quadrant": 2, |
| "us_quadrant": 4 |
| } |
| } |
| }, |
|
|
| "checkpoint_format": { |
| "type": "torch.save dict", |
| "keys": ["model", "epoch", "best_per", "best_loss", "state_dict", "optimizer"], |
| "state_dict_key": "state_dict", |
| "note": "Load with model.load_state_dict(checkpoint['state_dict'], strict=False); the 'model' key is a pickled model object retained for reproducibility but should not be trusted/unpickled directly." |
| }, |
|
|
| "license": "mit" |
| } |
|
|