├── .gitignore ├── LICENSE ├── NOTEBOOKS ├── DemoMethods.ipynb └── Forced_Random_Feature_Regression.ipynb ├── README.md ├── experiments ├── PerturbationExp │ ├── README.md │ ├── adversarial_training.py │ ├── adversaries.py │ ├── binary_torch_svm.py │ ├── models_final │ │ ├── binary_sigmoid_models │ │ │ ├── 'trial0' │ │ │ │ ├── 'trial0'_epsilon=0.05_hyperparameters.p │ │ │ │ ├── 'trial0'_epsilon=0.05_svm.p │ │ │ │ ├── 'trial0'_epsilon=0.05model.pt │ │ │ │ ├── 'trial0'_epsilon=0.05optimizer.pt │ │ │ │ ├── 'trial0'_epsilon=0.15_hyperparameters.p │ │ │ │ ├── 'trial0'_epsilon=0.15_svm.p │ │ │ │ ├── 'trial0'_epsilon=0.15model.pt │ │ │ │ ├── 'trial0'_epsilon=0.15optimizer.pt │ │ │ │ ├── 'trial0'_epsilon=0.1_hyperparameters.p │ │ │ │ ├── 'trial0'_epsilon=0.1_svm.p │ │ │ │ ├── 'trial0'_epsilon=0.1model.pt │ │ │ │ ├── 'trial0'_epsilon=0.1optimizer.pt │ │ │ │ ├── 'trial0'_epsilon=0.25_hyperparameters.p │ │ │ │ ├── 'trial0'_epsilon=0.25_svm.p │ │ │ │ ├── 'trial0'_epsilon=0.25model.pt │ │ │ │ ├── 'trial0'_epsilon=0.25optimizer.pt │ │ │ │ ├── 'trial0'_epsilon=0.2_hyperparameters.p │ │ │ │ ├── 'trial0'_epsilon=0.2_svm.p │ │ │ │ ├── 'trial0'_epsilon=0.2model.pt │ │ │ │ ├── 'trial0'_epsilon=0.2optimizer.pt │ │ │ │ ├── 'trial0'_epsilon=0.3_hyperparameters.p │ │ │ │ ├── 'trial0'_epsilon=0.3_svm.p │ │ │ │ ├── 'trial0'_epsilon=0.3model.pt │ │ │ │ ├── 'trial0'_epsilon=0.3optimizer.pt │ │ │ │ ├── 'trial0'_epsilon=0_hyperparameters.p │ │ │ │ ├── 'trial0'_epsilon=0_svm.p │ │ │ │ ├── 'trial0'_epsilon=0model.pt │ │ │ │ └── 'trial0'_epsilon=0optimizer.pt │ │ │ ├── 'trial1' │ │ │ │ ├── 'trial1'_epsilon=0.05_hyperparameters.p │ │ │ │ ├── 'trial1'_epsilon=0.05_svm.p │ │ │ │ ├── 'trial1'_epsilon=0.05model.pt │ │ │ │ ├── 'trial1'_epsilon=0.05optimizer.pt │ │ │ │ ├── 'trial1'_epsilon=0.15_hyperparameters.p │ │ │ │ ├── 'trial1'_epsilon=0.15_svm.p │ │ │ │ ├── 'trial1'_epsilon=0.15model.pt │ │ │ │ ├── 'trial1'_epsilon=0.15optimizer.pt │ │ │ │ ├── 'trial1'_epsilon=0.1_hyperparameters.p │ │ │ │ ├── 'trial1'_epsilon=0.1_svm.p │ │ │ │ ├── 'trial1'_epsilon=0.1model.pt │ │ │ │ ├── 'trial1'_epsilon=0.1optimizer.pt │ │ │ │ ├── 'trial1'_epsilon=0.25_hyperparameters.p │ │ │ │ ├── 'trial1'_epsilon=0.25_svm.p │ │ │ │ ├── 'trial1'_epsilon=0.25model.pt │ │ │ │ ├── 'trial1'_epsilon=0.25optimizer.pt │ │ │ │ ├── 'trial1'_epsilon=0.2_hyperparameters.p │ │ │ │ ├── 'trial1'_epsilon=0.2_svm.p │ │ │ │ ├── 'trial1'_epsilon=0.2model.pt │ │ │ │ ├── 'trial1'_epsilon=0.2optimizer.pt │ │ │ │ ├── 'trial1'_epsilon=0.3_hyperparameters.p │ │ │ │ ├── 'trial1'_epsilon=0.3_svm.p │ │ │ │ ├── 'trial1'_epsilon=0.3model.pt │ │ │ │ ├── 'trial1'_epsilon=0.3optimizer.pt │ │ │ │ ├── 'trial1'_epsilon=0_hyperparameters.p │ │ │ │ ├── 'trial1'_epsilon=0_svm.p │ │ │ │ ├── 'trial1'_epsilon=0model.pt │ │ │ │ └── 'trial1'_epsilon=0optimizer.pt │ │ │ ├── 'trial2' │ │ │ │ ├── 'trial2'_epsilon=0.05_hyperparameters.p │ │ │ │ ├── 'trial2'_epsilon=0.05_svm.p │ │ │ │ ├── 'trial2'_epsilon=0.05model.pt │ │ │ │ ├── 'trial2'_epsilon=0.05optimizer.pt │ │ │ │ ├── 'trial2'_epsilon=0.15_hyperparameters.p │ │ │ │ ├── 'trial2'_epsilon=0.15_svm.p │ │ │ │ ├── 'trial2'_epsilon=0.15model.pt │ │ │ │ ├── 'trial2'_epsilon=0.15optimizer.pt │ │ │ │ ├── 'trial2'_epsilon=0.1_hyperparameters.p │ │ │ │ ├── 'trial2'_epsilon=0.1_svm.p │ │ │ │ ├── 'trial2'_epsilon=0.1model.pt │ │ │ │ ├── 'trial2'_epsilon=0.1optimizer.pt │ │ │ │ ├── 'trial2'_epsilon=0.25_hyperparameters.p │ │ │ │ ├── 'trial2'_epsilon=0.25_svm.p │ │ │ │ ├── 'trial2'_epsilon=0.25model.pt │ │ │ │ ├── 'trial2'_epsilon=0.25optimizer.pt │ │ │ │ ├── 'trial2'_epsilon=0.2_hyperparameters.p │ │ │ │ ├── 'trial2'_epsilon=0.2_svm.p │ │ │ │ ├── 'trial2'_epsilon=0.2model.pt │ │ │ │ ├── 'trial2'_epsilon=0.2optimizer.pt │ │ │ │ ├── 'trial2'_epsilon=0.3_hyperparameters.p │ │ │ │ ├── 'trial2'_epsilon=0.3_svm.p │ │ │ │ ├── 'trial2'_epsilon=0.3model.pt │ │ │ │ ├── 'trial2'_epsilon=0.3optimizer.pt │ │ │ │ ├── 'trial2'_epsilon=0_hyperparameters.p │ │ │ │ ├── 'trial2'_epsilon=0_svm.p │ │ │ │ ├── 'trial2'_epsilon=0model.pt │ │ │ │ └── 'trial2'_epsilon=0optimizer.pt │ │ │ ├── 'trial3' │ │ │ │ ├── 'trial3'_epsilon=0.05_hyperparameters.p │ │ │ │ ├── 'trial3'_epsilon=0.05_svm.p │ │ │ │ ├── 'trial3'_epsilon=0.05model.pt │ │ │ │ ├── 'trial3'_epsilon=0.05optimizer.pt │ │ │ │ ├── 'trial3'_epsilon=0.15_hyperparameters.p │ │ │ │ ├── 'trial3'_epsilon=0.15_svm.p │ │ │ │ ├── 'trial3'_epsilon=0.15model.pt │ │ │ │ ├── 'trial3'_epsilon=0.15optimizer.pt │ │ │ │ ├── 'trial3'_epsilon=0.1_hyperparameters.p │ │ │ │ ├── 'trial3'_epsilon=0.1_svm.p │ │ │ │ ├── 'trial3'_epsilon=0.1model.pt │ │ │ │ ├── 'trial3'_epsilon=0.1optimizer.pt │ │ │ │ ├── 'trial3'_epsilon=0.25_hyperparameters.p │ │ │ │ ├── 'trial3'_epsilon=0.25_svm.p │ │ │ │ ├── 'trial3'_epsilon=0.25model.pt │ │ │ │ ├── 'trial3'_epsilon=0.25optimizer.pt │ │ │ │ ├── 'trial3'_epsilon=0.2_hyperparameters.p │ │ │ │ ├── 'trial3'_epsilon=0.2_svm.p │ │ │ │ ├── 'trial3'_epsilon=0.2model.pt │ │ │ │ ├── 'trial3'_epsilon=0.2optimizer.pt │ │ │ │ ├── 'trial3'_epsilon=0.3_hyperparameters.p │ │ │ │ ├── 'trial3'_epsilon=0.3_svm.p │ │ │ │ ├── 'trial3'_epsilon=0.3model.pt │ │ │ │ ├── 'trial3'_epsilon=0.3optimizer.pt │ │ │ │ ├── 'trial3'_epsilon=0_hyperparameters.p │ │ │ │ ├── 'trial3'_epsilon=0_svm.p │ │ │ │ ├── 'trial3'_epsilon=0model.pt │ │ │ │ └── 'trial3'_epsilon=0optimizer.pt │ │ │ ├── 'trial4' │ │ │ │ ├── 'trial4'_epsilon=0.05_hyperparameters.p │ │ │ │ ├── 'trial4'_epsilon=0.05_svm.p │ │ │ │ ├── 'trial4'_epsilon=0.05model.pt │ │ │ │ ├── 'trial4'_epsilon=0.05optimizer.pt │ │ │ │ ├── 'trial4'_epsilon=0.15_hyperparameters.p │ │ │ │ ├── 'trial4'_epsilon=0.15_svm.p │ │ │ │ ├── 'trial4'_epsilon=0.15model.pt │ │ │ │ ├── 'trial4'_epsilon=0.15optimizer.pt │ │ │ │ ├── 'trial4'_epsilon=0.1_hyperparameters.p │ │ │ │ ├── 'trial4'_epsilon=0.1_svm.p │ │ │ │ ├── 'trial4'_epsilon=0.1model.pt │ │ │ │ ├── 'trial4'_epsilon=0.1optimizer.pt │ │ │ │ ├── 'trial4'_epsilon=0.25_hyperparameters.p │ │ │ │ ├── 'trial4'_epsilon=0.25_svm.p │ │ │ │ ├── 'trial4'_epsilon=0.25model.pt │ │ │ │ ├── 'trial4'_epsilon=0.25optimizer.pt │ │ │ │ ├── 'trial4'_epsilon=0.2_hyperparameters.p │ │ │ │ ├── 'trial4'_epsilon=0.2_svm.p │ │ │ │ ├── 'trial4'_epsilon=0.2model.pt │ │ │ │ ├── 'trial4'_epsilon=0.2optimizer.pt │ │ │ │ ├── 'trial4'_epsilon=0.3_hyperparameters.p │ │ │ │ ├── 'trial4'_epsilon=0.3_svm.p │ │ │ │ ├── 'trial4'_epsilon=0.3model.pt │ │ │ │ ├── 'trial4'_epsilon=0.3optimizer.pt │ │ │ │ ├── 'trial4'_epsilon=0_hyperparameters.p │ │ │ │ ├── 'trial4'_epsilon=0_svm.p │ │ │ │ ├── 'trial4'_epsilon=0model.pt │ │ │ │ └── 'trial4'_epsilon=0optimizer.pt │ │ │ ├── 'trial5' │ │ │ │ ├── 'trial5'_epsilon=0.05_hyperparameters.p │ │ │ │ ├── 'trial5'_epsilon=0.05_svm.p │ │ │ │ ├── 'trial5'_epsilon=0.05model.pt │ │ │ │ ├── 'trial5'_epsilon=0.05optimizer.pt │ │ │ │ ├── 'trial5'_epsilon=0.15_hyperparameters.p │ │ │ │ ├── 'trial5'_epsilon=0.15_svm.p │ │ │ │ ├── 'trial5'_epsilon=0.15model.pt │ │ │ │ ├── 'trial5'_epsilon=0.15optimizer.pt │ │ │ │ ├── 'trial5'_epsilon=0.1_hyperparameters.p │ │ │ │ ├── 'trial5'_epsilon=0.1_svm.p │ │ │ │ ├── 'trial5'_epsilon=0.1model.pt │ │ │ │ ├── 'trial5'_epsilon=0.1optimizer.pt │ │ │ │ ├── 'trial5'_epsilon=0.25_hyperparameters.p │ │ │ │ ├── 'trial5'_epsilon=0.25_svm.p │ │ │ │ ├── 'trial5'_epsilon=0.25model.pt │ │ │ │ ├── 'trial5'_epsilon=0.25optimizer.pt │ │ │ │ ├── 'trial5'_epsilon=0.2_hyperparameters.p │ │ │ │ ├── 'trial5'_epsilon=0.2_svm.p │ │ │ │ ├── 'trial5'_epsilon=0.2model.pt │ │ │ │ ├── 'trial5'_epsilon=0.2optimizer.pt │ │ │ │ ├── 'trial5'_epsilon=0.3_hyperparameters.p │ │ │ │ ├── 'trial5'_epsilon=0.3_svm.p │ │ │ │ ├── 'trial5'_epsilon=0.3model.pt │ │ │ │ ├── 'trial5'_epsilon=0.3optimizer.pt │ │ │ │ ├── 'trial5'_epsilon=0_hyperparameters.p │ │ │ │ ├── 'trial5'_epsilon=0_svm.p │ │ │ │ ├── 'trial5'_epsilon=0model.pt │ │ │ │ └── 'trial5'_epsilon=0optimizer.pt │ │ │ ├── 'trial6' │ │ │ │ ├── 'trial6'_epsilon=0.05_hyperparameters.p │ │ │ │ ├── 'trial6'_epsilon=0.05_svm.p │ │ │ │ ├── 'trial6'_epsilon=0.05model.pt │ │ │ │ ├── 'trial6'_epsilon=0.05optimizer.pt │ │ │ │ ├── 'trial6'_epsilon=0.15_hyperparameters.p │ │ │ │ ├── 'trial6'_epsilon=0.15_svm.p │ │ │ │ ├── 'trial6'_epsilon=0.15model.pt │ │ │ │ ├── 'trial6'_epsilon=0.15optimizer.pt │ │ │ │ ├── 'trial6'_epsilon=0.1_hyperparameters.p │ │ │ │ ├── 'trial6'_epsilon=0.1_svm.p │ │ │ │ ├── 'trial6'_epsilon=0.1model.pt │ │ │ │ ├── 'trial6'_epsilon=0.1optimizer.pt │ │ │ │ ├── 'trial6'_epsilon=0.25_hyperparameters.p │ │ │ │ ├── 'trial6'_epsilon=0.25_svm.p │ │ │ │ ├── 'trial6'_epsilon=0.25model.pt │ │ │ │ ├── 'trial6'_epsilon=0.25optimizer.pt │ │ │ │ ├── 'trial6'_epsilon=0.2_hyperparameters.p │ │ │ │ ├── 'trial6'_epsilon=0.2_svm.p │ │ │ │ ├── 'trial6'_epsilon=0.2model.pt │ │ │ │ ├── 'trial6'_epsilon=0.2optimizer.pt │ │ │ │ ├── 'trial6'_epsilon=0.3_hyperparameters.p │ │ │ │ ├── 'trial6'_epsilon=0.3_svm.p │ │ │ │ ├── 'trial6'_epsilon=0.3model.pt │ │ │ │ ├── 'trial6'_epsilon=0.3optimizer.pt │ │ │ │ ├── 'trial6'_epsilon=0_hyperparameters.p │ │ │ │ ├── 'trial6'_epsilon=0_svm.p │ │ │ │ ├── 'trial6'_epsilon=0model.pt │ │ │ │ └── 'trial6'_epsilon=0optimizer.pt │ │ │ ├── 'trial7' │ │ │ │ ├── 'trial7'_epsilon=0.05_hyperparameters.p │ │ │ │ ├── 'trial7'_epsilon=0.05_svm.p │ │ │ │ ├── 'trial7'_epsilon=0.05model.pt │ │ │ │ ├── 'trial7'_epsilon=0.05optimizer.pt │ │ │ │ ├── 'trial7'_epsilon=0.15_hyperparameters.p │ │ │ │ ├── 'trial7'_epsilon=0.15_svm.p │ │ │ │ ├── 'trial7'_epsilon=0.15model.pt │ │ │ │ ├── 'trial7'_epsilon=0.15optimizer.pt │ │ │ │ ├── 'trial7'_epsilon=0.1_hyperparameters.p │ │ │ │ ├── 'trial7'_epsilon=0.1_svm.p │ │ │ │ ├── 'trial7'_epsilon=0.1model.pt │ │ │ │ ├── 'trial7'_epsilon=0.1optimizer.pt │ │ │ │ ├── 'trial7'_epsilon=0.25_hyperparameters.p │ │ │ │ ├── 'trial7'_epsilon=0.25_svm.p │ │ │ │ ├── 'trial7'_epsilon=0.25model.pt │ │ │ │ ├── 'trial7'_epsilon=0.25optimizer.pt │ │ │ │ ├── 'trial7'_epsilon=0.2_hyperparameters.p │ │ │ │ ├── 'trial7'_epsilon=0.2_svm.p │ │ │ │ ├── 'trial7'_epsilon=0.2model.pt │ │ │ │ ├── 'trial7'_epsilon=0.2optimizer.pt │ │ │ │ ├── 'trial7'_epsilon=0.3_hyperparameters.p │ │ │ │ ├── 'trial7'_epsilon=0.3_svm.p │ │ │ │ ├── 'trial7'_epsilon=0.3model.pt │ │ │ │ ├── 'trial7'_epsilon=0.3optimizer.pt │ │ │ │ ├── 'trial7'_epsilon=0_hyperparameters.p │ │ │ │ ├── 'trial7'_epsilon=0_svm.p │ │ │ │ ├── 'trial7'_epsilon=0model.pt │ │ │ │ └── 'trial7'_epsilon=0optimizer.pt │ │ │ ├── 'trial8' │ │ │ │ ├── 'trial8'_epsilon=0.05_hyperparameters.p │ │ │ │ ├── 'trial8'_epsilon=0.05_svm.p │ │ │ │ ├── 'trial8'_epsilon=0.05model.pt │ │ │ │ ├── 'trial8'_epsilon=0.05optimizer.pt │ │ │ │ ├── 'trial8'_epsilon=0.15_hyperparameters.p │ │ │ │ ├── 'trial8'_epsilon=0.15_svm.p │ │ │ │ ├── 'trial8'_epsilon=0.15model.pt │ │ │ │ ├── 'trial8'_epsilon=0.15optimizer.pt │ │ │ │ ├── 'trial8'_epsilon=0.1_hyperparameters.p │ │ │ │ ├── 'trial8'_epsilon=0.1_svm.p │ │ │ │ ├── 'trial8'_epsilon=0.1model.pt │ │ │ │ ├── 'trial8'_epsilon=0.1optimizer.pt │ │ │ │ ├── 'trial8'_epsilon=0.25_hyperparameters.p │ │ │ │ ├── 'trial8'_epsilon=0.25_svm.p │ │ │ │ ├── 'trial8'_epsilon=0.25model.pt │ │ │ │ ├── 'trial8'_epsilon=0.25optimizer.pt │ │ │ │ ├── 'trial8'_epsilon=0.2_hyperparameters.p │ │ │ │ ├── 'trial8'_epsilon=0.2_svm.p │ │ │ │ ├── 'trial8'_epsilon=0.2model.pt │ │ │ │ ├── 'trial8'_epsilon=0.2optimizer.pt │ │ │ │ ├── 'trial8'_epsilon=0.3_hyperparameters.p │ │ │ │ ├── 'trial8'_epsilon=0.3_svm.p │ │ │ │ ├── 'trial8'_epsilon=0.3model.pt │ │ │ │ ├── 'trial8'_epsilon=0.3optimizer.pt │ │ │ │ ├── 'trial8'_epsilon=0_hyperparameters.p │ │ │ │ ├── 'trial8'_epsilon=0_svm.p │ │ │ │ ├── 'trial8'_epsilon=0model.pt │ │ │ │ └── 'trial8'_epsilon=0optimizer.pt │ │ │ └── 'trial9' │ │ │ │ ├── 'trial9'_epsilon=0.05_hyperparameters.p │ │ │ │ ├── 'trial9'_epsilon=0.05_svm.p │ │ │ │ ├── 'trial9'_epsilon=0.05model.pt │ │ │ │ ├── 'trial9'_epsilon=0.05optimizer.pt │ │ │ │ ├── 'trial9'_epsilon=0.15_hyperparameters.p │ │ │ │ ├── 'trial9'_epsilon=0.15_svm.p │ │ │ │ ├── 'trial9'_epsilon=0.15model.pt │ │ │ │ ├── 'trial9'_epsilon=0.15optimizer.pt │ │ │ │ ├── 'trial9'_epsilon=0.1_hyperparameters.p │ │ │ │ ├── 'trial9'_epsilon=0.1_svm.p │ │ │ │ ├── 'trial9'_epsilon=0.1model.pt │ │ │ │ ├── 'trial9'_epsilon=0.1optimizer.pt │ │ │ │ ├── 'trial9'_epsilon=0.25_hyperparameters.p │ │ │ │ ├── 'trial9'_epsilon=0.25_svm.p │ │ │ │ ├── 'trial9'_epsilon=0.25model.pt │ │ │ │ ├── 'trial9'_epsilon=0.25optimizer.pt │ │ │ │ ├── 'trial9'_epsilon=0.2_hyperparameters.p │ │ │ │ ├── 'trial9'_epsilon=0.2_svm.p │ │ │ │ ├── 'trial9'_epsilon=0.2model.pt │ │ │ │ ├── 'trial9'_epsilon=0.2optimizer.pt │ │ │ │ ├── 'trial9'_epsilon=0.3_hyperparameters.p │ │ │ │ ├── 'trial9'_epsilon=0.3_svm.p │ │ │ │ ├── 'trial9'_epsilon=0.3model.pt │ │ │ │ ├── 'trial9'_epsilon=0.3optimizer.pt │ │ │ │ ├── 'trial9'_epsilon=0_hyperparameters.p │ │ │ │ ├── 'trial9'_epsilon=0_svm.p │ │ │ │ ├── 'trial9'_epsilon=0model.pt │ │ │ │ └── 'trial9'_epsilon=0optimizer.pt │ │ └── smallest_adversarial_example │ │ │ ├── trial0 │ │ │ ├── trial0_hyperparameters.p │ │ │ ├── trial0model.pt │ │ │ └── trial0optimizer.pt │ │ │ ├── trial1 │ │ │ ├── trial1_hyperparameters.p │ │ │ ├── trial1model.pt │ │ │ └── trial1optimizer.pt │ │ │ ├── trial2 │ │ │ ├── trial2_hyperparameters.p │ │ │ ├── trial2model.pt │ │ │ └── trial2optimizer.pt │ │ │ ├── trial3 │ │ │ ├── trial3_hyperparameters.p │ │ │ ├── trial3model.pt │ │ │ └── trial3optimizer.pt │ │ │ ├── trial4 │ │ │ ├── trial4_hyperparameters.p │ │ │ ├── trial4model.pt │ │ │ └── trial4optimizer.pt │ │ │ ├── trial5 │ │ │ ├── trial5_hyperparameters.p │ │ │ ├── trial5model.pt │ │ │ └── trial5optimizer.pt │ │ │ ├── trial6 │ │ │ ├── trial6_hyperparameters.p │ │ │ ├── trial6model.pt │ │ │ └── trial6optimizer.pt │ │ │ ├── trial7 │ │ │ ├── trial7_hyperparameters.p │ │ │ ├── trial7model.pt │ │ │ └── trial7optimizer.pt │ │ │ ├── trial8 │ │ │ ├── trial8_hyperparameters.p │ │ │ ├── trial8model.pt │ │ │ └── trial8optimizer.pt │ │ │ └── trial9 │ │ │ ├── trial9_hyperparameters.p │ │ │ ├── trial9model.pt │ │ │ └── trial9optimizer.pt │ ├── nn_vs_svm_attack_plotting.py │ ├── ntk_methods.py │ ├── pretrained_models │ │ └── lenet_mnist_model.pth │ ├── smallest_adversarial_example.py │ ├── smallest_adversarial_example_plotting.py │ ├── testing_pickles │ │ ├── adversarial_test_test.p │ │ ├── adversarial_training_test.p │ │ ├── classic_adversarial_training_test.p │ │ ├── fgsm_test.p │ │ └── pgd_test.p │ ├── train_binary_MNIST_sigmoid_networks.py │ ├── train_full_MNIST_networks.py │ ├── zb-train_full_mnist_networks.sh │ ├── zt-models_plotting.ipynb │ ├── zt-ntk_and_svm_test.py │ ├── zt-smallest_adversarial_perturbation_test.py │ ├── zt-training_methods_test.py │ └── zz-adversaries_test.py └── SpectralExp │ ├── Adam.py │ ├── Linear_Regime_Pytorch_sigmoid.ipynb │ ├── Linear_Regime_pytorch1.ipynb │ ├── MNIST_LeNet5_NTK_update.ipynb │ ├── NTK.ipynb │ ├── Synthetic_data__DNN.ipynb │ ├── change.py │ ├── change_meanf.py │ ├── change_sgd.py │ ├── hessian.py │ ├── lr.py │ └── try.sh └── torchntk ├── __init__.py ├── __pycache__ └── __init__.cpython-39.pyc ├── autograd ├── __init__.py ├── __pycache__ │ ├── __init__.cpython-39.pyc │ ├── autograd_experimental.cpython-39.pyc │ ├── autograd_misc.cpython-39.pyc │ └── autograd_ntk.cpython-39.pyc ├── autograd_experimental.py ├── autograd_misc.py └── autograd_ntk.py └── explicit ├── __init__.py ├── __pycache__ ├── __init__.cpython-39.pyc └── explicit_ntk.cpython-39.pyc └── explicit_ntk.py /.gitignore: -------------------------------------------------------------------------------- 1 | ./DATA/ 2 | ./images/ 3 | ./easyntk/__pycache__/ 4 | ./easyntk/autograd/__pycache__/ 5 | ./easyntk/explicit/__pycache__/ 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | From PyTorch: 2 | 3 | BSD-3 License 4 | 5 | Copyright (c) 2016- Facebook, Inc (Adam Paszke) 6 | Copyright (c) 2014- Facebook, Inc (Soumith Chintala) 7 | Copyright (c) 2011-2014 Idiap Research Institute (Ronan Collobert) 8 | Copyright (c) 2012-2014 Deepmind Technologies (Koray Kavukcuoglu) 9 | Copyright (c) 2011-2012 NEC Laboratories America (Koray Kavukcuoglu) 10 | Copyright (c) 2011-2013 NYU (Clement Farabet) 11 | Copyright (c) 2006-2010 NEC Laboratories America (Ronan Collobert, Leon Bottou, Iain Melvin, Jason Weston) 12 | Copyright (c) 2006 Idiap Research Institute (Samy Bengio) 13 | Copyright (c) 2001-2004 Idiap Research Institute (Ronan Collobert, Samy Bengio, Johnny Mariethoz) 14 | 15 | From Caffe2: 16 | 17 | Copyright (c) 2016-present, Facebook Inc. All rights reserved. 18 | 19 | All contributions by Facebook: 20 | Copyright (c) 2016 Facebook Inc. 21 | 22 | All contributions by Google: 23 | Copyright (c) 2015 Google Inc. 24 | All rights reserved. 25 | 26 | All contributions by Yangqing Jia: 27 | Copyright (c) 2015 Yangqing Jia 28 | All rights reserved. 29 | 30 | All contributions by Kakao Brain: 31 | Copyright 2019-2020 Kakao Brain 32 | 33 | All contributions from Caffe: 34 | Copyright(c) 2013, 2014, 2015, the respective contributors 35 | All rights reserved. 36 | 37 | All other contributions: 38 | Copyright(c) 2015, 2016 the respective contributors 39 | All rights reserved. 40 | 41 | Caffe2 uses a copyright model similar to Caffe: each contributor holds 42 | copyright over their contributions to Caffe2. The project versioning records 43 | all such contribution and copyright details. If a contributor wants to further 44 | mark their specific copyright on a particular contribution, they should 45 | indicate their copyright solely in the commit message of the change when it is 46 | committed. 47 | 48 | All rights reserved. 49 | 50 | Redistribution and use in source and binary forms, with or without 51 | modification, are permitted provided that the following conditions are met: 52 | 53 | 1. Redistributions of source code must retain the above copyright 54 | notice, this list of conditions and the following disclaimer. 55 | 56 | 2. Redistributions in binary form must reproduce the above copyright 57 | notice, this list of conditions and the following disclaimer in the 58 | documentation and/or other materials provided with the distribution. 59 | 60 | 3. Neither the names of Facebook, Deepmind Technologies, NYU, NEC Laboratories America 61 | and IDIAP Research Institute nor the names of its contributors may be 62 | used to endorse or promote products derived from this software without 63 | specific prior written permission. 64 | 65 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 66 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 67 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 68 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 69 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 70 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 71 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 72 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 73 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 74 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 75 | POSSIBILITY OF SUCH DAMAGE. 76 | 77 | From Wuyang Chen 78 | 79 | MIT License 80 | 81 | Copyright (c) 2020 Wuyang Chen 82 | 83 | Permission is hereby granted, free of charge, to any person obtaining a copy 84 | of this software and associated documentation files (the "Software"), to deal 85 | in the Software without restriction, including without limitation the rights 86 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 87 | copies of the Software, and to permit persons to whom the Software is 88 | furnished to do so, subject to the following conditions: 89 | 90 | The above copyright notice and this permission notice shall be included in all 91 | copies or substantial portions of the Software. 92 | 93 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 94 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 95 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 96 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 97 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 98 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 99 | SOFTWARE. 100 | 101 | From Andrew Engel and Collaborators 102 | 103 | MIT License 104 | 105 | Copyright (c) 2021 Andrew Engel and Collaborators 106 | 107 | Permission is hereby granted, free of charge, to any person obtaining a copy 108 | of this software and associated documentation files (the "Software"), to deal 109 | in the Software without restriction, including without limitation the rights 110 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 111 | copies of the Software, and to permit persons to whom the Software is 112 | furnished to do so, subject to the following conditions: 113 | 114 | The above copyright notice and this permission notice shall be included in all 115 | copies or substantial portions of the Software. 116 | 117 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 118 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 119 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 120 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 121 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 122 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 123 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # TorchNTK 2 | 3 | #### An Arbitrary** PyTorch Architecture Neural Tangent Kernel Library 4 | 5 | This code was developed to bridge a gap in NTK computation before the release Pytorch1.11; but now with Pytorch 1.11 release I advise you take a look at functorch's [NTK page](https://pytorch.org/functorch/stable/notebooks/neural_tangent_kernels.html), which generally will have better development + improvements than this repo. *In other words, we do not expect to support this repo moving forward.* 6 | 7 | ### Installation 8 | 9 | * git clone this repository 10 | 11 | ```bash 12 | git clone https://github.com/pnnl/torchntk 13 | ``` 14 | 15 | * Add to PYTHONPATH 16 | 17 | ```bash 18 | export PYTHONPATH="${PYTHONPATH}:/my/path/TorchNTK/" 19 | ``` 20 | 21 | * Make sure you have correct dependencies installed; Broadly, this code was tested with PyTorch 1.9, numba 0.53.1, and Tensorboard 2.6.0, on Python 3.8.8. 22 | 23 | * The torch.vmap function is only available on nightly releases of PyTorch. torch.vmap is only used for one implementation of an autograd calculation-- *it is not required* 24 | 25 | * For the notebooks comparing to neural tangents, you will also need jax, jaxlib, and neural-tangents installed. This can be tricky for windows users, and we suggest going to the original neural-tangents page for detailed installation instructions [here](https://github.com/google/neural-tangents) 26 | 27 | * For the tensorboard.ipynb notebook, download the dataset from [here](https://drive.google.com/file/d/1MwD_k-KLlfins4wKiTdCmTIfUfzlKJwg/view?usp=sharing) and place into ./DATA/ ; though you very well could use any other dataset or simulated data. 28 | 29 | ### Basic Usage 30 | 31 | ```python 32 | 33 | import torchntk 34 | import torch 35 | 36 | DEVICE = 'cpu' #or cuda, lets say 37 | 38 | model = Pytorch_Model() #Any architecture-- BUT must terminate in single neuron 39 | model.to(DEVICE) 40 | 41 | Y = model(X) 42 | 43 | NTK_components = torchntk.autograd.autograd_components_ntk(model,Y) 44 | ``` 45 | 46 | or, a generally faster implementation exists if torch.vmap exists (currently available in pytorch nightly builds only) 47 | 48 | ```python 49 | 50 | import torchntk 51 | import torch 52 | from torch.utils.data import DataLoader, TensorDataset 53 | 54 | DEVICE = 'cuda' # 55 | 56 | model = Pytorch_Model() #Any architecture-- BUT must terminate in single neuron 57 | model.to(DEVICE) 58 | 59 | xloader = DataLoader(TensorDataset(My_data,My_targets),batch_size=64, shuffle=False) 60 | 61 | NTK_components = torchntk.autograd.vmap_ntk_loader(model,xloader) 62 | ``` 63 | 64 | Finally, if you are using a fully connected network (a network composed only of torch.nn.Linear layers) you can use this last method which is typically much faster: 65 | 66 | ```python 67 | import torchntk 68 | import torch 69 | 70 | DEVICE = 'cuda' 71 | 72 | def activation(X): 73 | return torch.tanh(X) 74 | 75 | def d_activation(X): 76 | return torch.cosh(X)**-2 77 | 78 | class MLP(torch.nn.Module): 79 | def __init__(self,): 80 | super(MLP, self).__init__() 81 | self.d1 = torch.nn.Linear(784,100,bias=True) 82 | self.d2 = torch.nn.Linear(100,100,bias=True) 83 | self.d3 = torch.nn.Linear(100,1,bias=True) 84 | def forward(self, x_0): 85 | x_1 = activation(self.d1(x_0)) / torch.sqrt(100) 86 | x_2 = activation(self.d2(x_1)) / torch.sqrt(100) 87 | x_3 = activation(self.d3(x_2)) / torch.sqrt(1) 88 | return x_3, x_2, x_1, x_0 89 | 90 | 91 | model = MLP() 92 | model.to(DEVICE) 93 | 94 | x_3, x_2, x_1, x_0 = model(X) #for some data, X 95 | 96 | Xs = [x_0.T.detach(), 97 | x_1.T.detach(), 98 | x_2.T.detach()] 99 | 100 | layers = [model.d1, 101 | model.d2, 102 | model.d3] 103 | 104 | #this must match the layer's width 105 | ds_int = [100, 100, 1] 106 | 107 | #this must match what you divided the layer by, squared. 108 | #i.e., if you didn't divide each layer by anything, this should be all ones. 109 | ds_float = [100.0, 100.0, 1.0] 110 | 111 | 112 | config = {'Xs':Xs, 113 | 'layers':layers, 114 | 'ds_int':ds_int, 115 | 'ds_float':ds_float, 116 | 'dactivation_t':d_activation} 117 | 118 | components = torchntk.explicit.explicit_ntk(**config) 119 | #components is a list of torch.Tensor objects representing each component of 120 | #the NTK from each parameterized operation in reverse order. Meaning, 121 | #components[0] is the outermost layer weight matrix NTK component, 122 | #components[1] is the outermost layer bias vector NTK component, 123 | # ... 124 | #components[-1] is the first layer's bias vector NTK components 125 | 126 | #to get the full NTK, simply sum the components across the list's dimension. 127 | 128 | ``` 129 | 130 | ### Logging with Tensorboard 131 | 132 | check the tensorboard.ipynb notebook. 133 | 134 | Once installed, Tensorboard can be started on the command line with: 135 | ```bash 136 | tensorboard --logdir=LOGDIR 137 | ``` 138 | 139 | ### Possible Metrics of Interest 140 | 141 | The condition number is the (minimum eigenvalue of the NTK / maximum eigenvalue of the NTK). It is negatively correlated with model performance 142 | 143 | ### Credit 144 | 145 | "torchntk.autograd.old_autograd_ntk" was directly adatapted from the TENAS group's code, available [here](https://github.com/VITA-Group/TENAS) , and you can view their paper on neural architecture seach [here](https://arxiv.org/pdf/2102.11535.pdf); authored by Chen, Wuyang and Gong, Xinyu and Wang, Zhangyang and titled: "Neural Architecture Search on ImageNet in Four GPU Hours: A Theoretically Inspired Perspective" 146 | 147 | Some backward propogation functions were originally copied then heavily modified from this article by Pierre Jaumier, available [here](https://towardsdatascience.com/backpropagation-in-a-convolutional-layer-24c8d64d8509) 148 | 149 | I've also included some utility functions that I directly copied from the PyTorch source; therefore, their license clause is included in ours. 150 | 151 | Experimental autograd operations were adapted from web pages in the pre-release of Pytorch1.11; but now with Pytorch 1.11 release I advise you take a look at functorch's [NTK page](https://pytorch.org/functorch/stable/notebooks/neural_tangent_kernels.html). 152 | 153 | ### Software TODO (or how you can contribute) 154 | 155 | * Add explicit calculations for more varied architectures 156 | * Parallelize computation across multiple GPUs 157 | * make the notebook that demonstrates the different algorithms into a test such that pytest can be run on it, assert all outputs are ~same 158 | 159 | -------------------------------------------------------------------------------- /experiments/PerturbationExp/README.md: -------------------------------------------------------------------------------- 1 | files starting with zt are important test files 2 | files starting with zb are sbatch files I used for the final product 3 | all files without a prefix are important 4 | models_final contain all the trained models for the two experiments 5 | 6 | The two final plotting files are 7 | smallest_adversarial_example_plotting.py 8 | nn_vs_svm_attack_plotting.py 9 | 10 | Files that should be included in the published repository are: 11 | -files with prefix zb 12 | -all files with no prefix EXCEPT pretrained_models//lenet_mnist_model.pth 13 | (I apologize for this annoying exception, I've referenced this file in several tests and zz-/zz_ files. I don't want to fix all the tests, so there is an expection to the naming convention) 14 | 15 | Inefficiencies in the code: 16 | These are described in the associated pdf file 17 | 1. smallest_adversarial_perturbation: The QR factorization takes up 2X too much memory. Currently, I've done the calculation for a random half for the training set for each neural net. possible improvements: 1) If we could convince numpy.linalg to do computations with float32 instead of float64, this should solve the memory problem. I don't know how to do this though. 2) We should consider running multiple calculations for each neural net. However, because we are using a large portion of the training set, this source of randomness may not be the largest source of variance. 18 | Keep in mind: the 'vectorized' versions of functions in this file are MUCH MUCH faster 19 | 2. nn_vs_svm_attack: the most expensive part is generating the adversarial examples for the SVM. As the code is currently written, this step is done 11 times for each SVM. (adversarial examples for the neural net are not nearly as expensive) I made this choice because a)I was concerned about memory use b) I was not aware attacking the SVM would be so expensive c) it was programmatically easier -------------------------------------------------------------------------------- /experiments/PerturbationExp/adversarial_training.py: -------------------------------------------------------------------------------- 1 | #methods for adversarially training and testing neural nets 2 | 3 | 4 | import numpy as np 5 | import torch 6 | import torch.nn as nn 7 | import torch.nn.functional as F 8 | import torch.optim as optim 9 | import matplotlib.pyplot as plt 10 | import adversaries 11 | import math 12 | from torchvision import datasets, transforms 13 | import os 14 | 15 | 16 | #trains a neural net using the adversarial training algorithm 17 | 18 | #model: the neural net for training, assumed to extend nn.Module 19 | #epochs: the number of training epochs 20 | #data_loader: data loader for looping over the data 21 | #input_attack: the adversarial attack. input_attack must have inputs (model,x,y) and must output a torch tensor the same dimensions as x as an attack image. input_attack can be vectorized or unvectorized, but the vectorized_adversary field must be set accordingly 22 | #optimizer: the optimizer for training 23 | #loss_function: the loss function to be minimized during training 24 | #epoch_print_frequency (optional): training progress will be printed every epoch_print_frequency epochs 25 | #device: device for training. If "use_all_GPUs" is true, all GPUs will be used instead of the specified device 26 | #x_gradient_required (optional): whether or not "input attack" requires gradients of the model in x 27 | #vectorized_adversary (optional): whether the function "input_attack" is vectorized. If the batch size is greater than 1 and vectorized_adversary is false, the method will apply the adversary to the data points in a loop 28 | def classic_adversarial_training(model, epochs, data_loader, input_attack, optimizer, loss_function,epoch_print_frequency=10,device=torch.device("cpu"),x_gradient_required=True,vectorized_adversary=False): 29 | model.to(device) 30 | model.train() 31 | if vectorized_adversary or data_loader.batch_size==1: 32 | attack=input_attack 33 | else: 34 | def attack(model,xs,ys): 35 | return adversaries.vectorize_adversary(model, xs,ys,input_attack) 36 | classification_error_list=[] 37 | train_error_list=[] 38 | for epoch in range(epochs): 39 | training_risk=0 40 | correct=0 41 | total=0 42 | for batch, (inputs, targets) in enumerate(data_loader): 43 | #move data to device 44 | inputs=inputs.to(device) 45 | targets=targets.to(device) 46 | #zeroing the gradients 47 | optimizer.zero_grad() 48 | 49 | 50 | #requiring gradients in the x-variable 51 | if x_gradient_required: 52 | inputs.requires_grad=True #TODO test this if statement 53 | #inputs.to(device) 54 | #print(inputs.get_device()) 55 | adversarial_examples=attack(model,inputs,targets)#generating the adversarial examples 56 | adversarial_ys=model(adversarial_examples)#running the adversarial examples through the model 57 | loss=loss_function(adversarial_ys,targets)#evaluating the loss 58 | 59 | 60 | 61 | #calculating the gradients 62 | loss.backward() 63 | 64 | #changing the neural net 65 | optimizer.step() 66 | 67 | #add the loss of the current to the current tally for the risk 68 | training_risk+=loss.sum().item() 69 | 70 | #counting the number of data points 71 | total+=targets.size(0) 72 | 73 | #finding the class predictions 74 | _, predicted = adversarial_ys.max(1) 75 | 76 | #add 1 to the running tally for correctly classified points if the correct class was predicted 77 | correct += predicted.eq(targets).sum().item() 78 | #normalizing the empirical risks 79 | adversarial_classification_correct=correct/total 80 | training_risk=training_risk/total 81 | #printing progress 82 | if epoch%epoch_print_frequency==0: 83 | print("Epoch:", epoch, " Training risk:", training_risk, "Adversarial classification error:", 1-adversarial_classification_correct) 84 | train_error_list.append(training_risk) 85 | classification_error_list.append(1-adversarial_classification_correct) 86 | model.eval() 87 | return train_error_list, classification_error_list 88 | 89 | 90 | 91 | #calculates the test error of a neural net under adversarial perturbations 92 | 93 | #model: neural net under attack, assumed to extend nn.Module 94 | #test_loader: for loading the test set. Assumes a batch size of 1 95 | #attack: function that takes as input (model,x,label) and outputs and adversarial example 96 | #loss_function: loss function for evaluating model on data 97 | #device: TODO currently not implemented, the device on which the model is tested 98 | #max prediction: the label is predicted according to the maximum of the last output layer of model if True, and according to the minimum if false 99 | def test( model, test_loader, attack, loss_function, device="cpu",max_prediction=True): 100 | class_risk_sum=0 101 | train_risk_sum=0 102 | total_data_points=0 103 | for x,label in test_loader: 104 | #adding 1 to the total data points 105 | total_data_points+=1 106 | # TODO moving the data and lable to the device 107 | #x, label = x.to(device), label.to(device) 108 | #zero the gradients in the model 109 | model.zero_grad() 110 | #require gradients on x, important for adversarial examples 111 | x.requires_grad=True 112 | #generating the adversarial example 113 | adversarial_example=attack(model,x,label) 114 | #running the adversarial example through the model: 115 | adversarial_y=model(adversarial_example) 116 | #evaluating the loss: 117 | #finding the class predictions 118 | if max_prediction: 119 | _, predicted = adversarial_y.max(1) 120 | else: 121 | _, predicted = adversarial_y.min(1) 122 | #add 1 to the running tally for correctly classified points if the correct class was predicted 123 | class_risk_sum += (~predicted.eq(label)).item() 124 | #evaluating the adversarial loss and adding to the running tally 125 | loss=loss_function(adversarial_y,label) 126 | train_risk_sum+=loss.item() 127 | 128 | #calculating the risk 129 | class_risk=class_risk_sum/total_data_points 130 | train_risk=train_risk_sum/total_data_points 131 | return train_risk, class_risk 132 | 133 | 134 | 135 | 136 | -------------------------------------------------------------------------------- /experiments/PerturbationExp/binary_torch_svm.py: -------------------------------------------------------------------------------- 1 | #implements an SVM using pytorch so that it can be attacked using gradient-based methods 2 | import torch.nn as nn 3 | import torch 4 | import ntk_methods 5 | import numpy as np 6 | 7 | 8 | 9 | class binary_torch_SVM(nn.Module): 10 | #net: the neural net to be approximated using the SVM 11 | #svm: an sklearn svm trained using the NTK of net on the training data along with the correct data labels 12 | #feature mapping: the jacobian net evaluated on the training set 13 | 14 | #sets the coefficients of the SVM 15 | def __init__(self, net,svm,feature_mapping): 16 | super(binary_torch_SVM, self).__init__() 17 | self.net=net 18 | self.intercept=torch.tensor(svm.intercept_) 19 | support_indices=svm.support_ 20 | sz=feature_mapping.shape 21 | self.coef=torch.zeros([sz[0], 1]) 22 | dual_coefs=svm.dual_coef_[0] 23 | for j in range(len(support_indices)): 24 | support_index=support_indices[j] 25 | ft=feature_mapping[:,support_index] 26 | ft=ft[:,None] 27 | self.coef+=dual_coefs[j]*ft 28 | 29 | 30 | #xs: a torch tensor containing points to be classified 31 | 32 | #finds the feature mapping of each data point x in xs and outputs w*x+b, where b is the intercept and w the coefficients of the slopes of the neural net 33 | def forward(self,xs): 34 | features=ntk_methods.feature_mapping(self.net,xs,data_set=False,higher_derivatives=True) 35 | tnsr=[torch.matmul(feature_vector,self.coef)+self.intercept for feature_vector in torch.transpose(features,0,1)] 36 | tnsr=torch.stack(tnsr) 37 | 38 | return tnsr 39 | 40 | 41 | #predicts the class of a list or tensor of x values 42 | #outputs 0 or 1 43 | def predict(self,x_list): 44 | y_list=[0]*len(x_list) 45 | vals=self.forward(x_list) 46 | for i in range(len(x_list)): 47 | val=vals[i] 48 | if val.item()>0: 49 | y_list[i]=1 50 | return np.array(y_list) 51 | 52 | 53 | -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.05_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.05_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.05_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.05_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.05model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.05model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.05optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.05optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.15_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.15_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.15_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.15_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.15model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.15model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.15optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.15optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.1_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.1_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.1_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.1_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.1model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.1model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.1optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.1optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.25_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.25_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.25_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.25_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.25model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.25model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.25optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.25optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.2_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.2_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.2_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.2_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.2model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.2model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.2optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.2optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.3_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.3_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.3_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.3_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.3model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.3model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.3optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0.3optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial0'/'trial0'_epsilon=0optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.05_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.05_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.05_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.05_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.05model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.05model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.05optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.05optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.15_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.15_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.15_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.15_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.15model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.15model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.15optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.15optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.1_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.1_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.1_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.1_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.1model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.1model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.1optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.1optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.25_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.25_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.25_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.25_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.25model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.25model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.25optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.25optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.2_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.2_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.2_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.2_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.2model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.2model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.2optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.2optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.3_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.3_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.3_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.3_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.3model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.3model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.3optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0.3optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial1'/'trial1'_epsilon=0optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.05_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.05_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.05_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.05_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.05model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.05model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.05optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.05optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.15_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.15_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.15_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.15_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.15model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.15model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.15optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.15optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.1_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.1_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.1_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.1_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.1model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.1model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.1optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.1optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.25_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.25_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.25_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.25_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.25model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.25model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.25optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.25optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.2_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.2_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.2_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.2_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.2model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.2model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.2optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.2optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.3_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.3_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.3_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.3_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.3model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.3model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.3optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0.3optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial2'/'trial2'_epsilon=0optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.05_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.05_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.05_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.05_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.05model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.05model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.05optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.05optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.15_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.15_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.15_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.15_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.15model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.15model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.15optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.15optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.1_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.1_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.1_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.1_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.1model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.1model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.1optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.1optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.25_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.25_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.25_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.25_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.25model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.25model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.25optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.25optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.2_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.2_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.2_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.2_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.2model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.2model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.2optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.2optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.3_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.3_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.3_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.3_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.3model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.3model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.3optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0.3optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial3'/'trial3'_epsilon=0optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.05_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.05_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.05_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.05_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.05model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.05model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.05optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.05optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.15_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.15_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.15_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.15_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.15model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.15model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.15optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.15optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.1_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.1_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.1_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.1_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.1model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.1model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.1optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.1optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.25_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.25_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.25_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.25_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.25model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.25model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.25optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.25optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.2_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.2_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.2_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.2_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.2model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.2model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.2optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.2optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.3_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.3_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.3_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.3_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.3model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.3model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.3optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0.3optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial4'/'trial4'_epsilon=0optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.05_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.05_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.05_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.05_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.05model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.05model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.05optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.05optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.15_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.15_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.15_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.15_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.15model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.15model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.15optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.15optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.1_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.1_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.1_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.1_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.1model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.1model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.1optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.1optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.25_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.25_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.25_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.25_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.25model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.25model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.25optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.25optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.2_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.2_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.2_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.2_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.2model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.2model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.2optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.2optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.3_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.3_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.3_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.3_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.3model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.3model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.3optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0.3optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial5'/'trial5'_epsilon=0optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.05_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.05_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.05_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.05_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.05model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.05model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.05optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.05optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.15_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.15_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.15_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.15_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.15model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.15model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.15optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.15optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.1_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.1_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.1_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.1_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.1model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.1model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.1optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.1optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.25_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.25_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.25_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.25_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.25model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.25model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.25optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.25optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.2_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.2_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.2_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.2_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.2model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.2model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.2optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.2optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.3_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.3_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.3_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.3_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.3model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.3model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.3optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0.3optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial6'/'trial6'_epsilon=0optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.05_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.05_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.05_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.05_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.05model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.05model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.05optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.05optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.15_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.15_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.15_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.15_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.15model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.15model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.15optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.15optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.1_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.1_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.1_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.1_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.1model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.1model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.1optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.1optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.25_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.25_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.25_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.25_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.25model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.25model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.25optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.25optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.2_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.2_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.2_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.2_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.2model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.2model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.2optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.2optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.3_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.3_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.3_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.3_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.3model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.3model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.3optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0.3optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial7'/'trial7'_epsilon=0optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.05_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.05_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.05_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.05_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.05model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.05model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.05optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.05optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.15_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.15_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.15_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.15_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.15model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.15model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.15optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.15optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.1_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.1_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.1_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.1_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.1model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.1model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.1optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.1optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.25_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.25_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.25_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.25_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.25model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.25model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.25optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.25optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.2_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.2_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.2_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.2_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.2model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.2model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.2optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.2optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.3_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.3_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.3_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.3_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.3model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.3model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.3optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0.3optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial8'/'trial8'_epsilon=0optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.05_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.05_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.05_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.05_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.05model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.05model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.05optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.05optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.15_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.15_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.15_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.15_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.15model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.15model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.15optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.15optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.1_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.1_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.1_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.1_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.1model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.1model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.1optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.1optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.25_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.25_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.25_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.25_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.25model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.25model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.25optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.25optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.2_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.2_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.2_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.2_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.2model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.2model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.2optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.2optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.3_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.3_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.3_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.3_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.3model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.3model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.3optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0.3optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0_svm.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0_svm.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/binary_sigmoid_models/'trial9'/'trial9'_epsilon=0optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial0/trial0_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial0/trial0_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial0/trial0model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial0/trial0model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial0/trial0optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial0/trial0optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial1/trial1_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial1/trial1_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial1/trial1model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial1/trial1model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial1/trial1optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial1/trial1optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial2/trial2_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial2/trial2_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial2/trial2model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial2/trial2model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial2/trial2optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial2/trial2optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial3/trial3_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial3/trial3_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial3/trial3model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial3/trial3model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial3/trial3optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial3/trial3optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial4/trial4_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial4/trial4_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial4/trial4model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial4/trial4model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial4/trial4optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial4/trial4optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial5/trial5_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial5/trial5_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial5/trial5model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial5/trial5model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial5/trial5optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial5/trial5optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial6/trial6_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial6/trial6_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial6/trial6model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial6/trial6model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial6/trial6optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial6/trial6optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial7/trial7_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial7/trial7_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial7/trial7model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial7/trial7model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial7/trial7optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial7/trial7optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial8/trial8_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial8/trial8_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial8/trial8model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial8/trial8model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial8/trial8optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial8/trial8optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial9/trial9_hyperparameters.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial9/trial9_hyperparameters.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial9/trial9model.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial9/trial9model.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/models_final/smallest_adversarial_example/trial9/trial9optimizer.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/models_final/smallest_adversarial_example/trial9/trial9optimizer.pt -------------------------------------------------------------------------------- /experiments/PerturbationExp/ntk_methods.py: -------------------------------------------------------------------------------- 1 | #Implements methods involving the feature mappings of a neural net 2 | 3 | import torch 4 | import torch.nn as nn 5 | import torch.nn.functional as F 6 | import numpy as np 7 | from sklearn.svm import SVC 8 | 9 | 10 | #returns the concatenation of each output neuron differentiated in terms of each model parameter evaluated on data 11 | 12 | #net: the neural net for which we compute the feature mapping 13 | #data: the input data at which we compute the feature mapping 14 | #data_set: true if 'data' is a data set, false if it is a tensor. The 0th dimension is assumed to be the batch dimension 15 | #higher_derivatives: True if one will want to compute higher order derivatives in the future 16 | #return_torch_tensor: returns a torch tensor if True, and a numpy array if false. (Implemented separately for efficiency with memory.) 17 | def feature_mapping(net, data, data_set=True, higher_derivatives=False,return_torch_tensor=True): 18 | if return_torch_tensor: 19 | derivative_list=[] 20 | for dt in data: 21 | if data_set: 22 | data_point=dt[0] 23 | else: 24 | data_point=dt 25 | #x=data_point.detach() 26 | x=data_point 27 | y_list=net(x)[0] 28 | w_derivative_list=[] 29 | for i in range(y_list.size()[0]): 30 | y=y_list[i] 31 | params=net.parameters() 32 | for p in params: 33 | if higher_derivatives: 34 | p_grad=torch.autograd.grad(y,p,create_graph=True,allow_unused=True)[0] 35 | else: 36 | p_grad=torch.autograd.grad(y,p,retain_graph=True)[0] 37 | w_derivative_list.append(torch.flatten(p_grad)) 38 | 39 | feature =torch.cat(w_derivative_list) 40 | derivative_list.append(feature) 41 | feature_mapping=torch.stack(derivative_list) 42 | feature_mapping=torch.transpose(feature_mapping,0,1) 43 | return feature_mapping 44 | else: 45 | #calculate the length of the feature mapping 46 | dt=data[0] 47 | if data_set: 48 | data_point=dt[0] 49 | else: 50 | data_point=dt 51 | #x=data_point.detach() 52 | x=data_point 53 | feature=get_feature_single_derivatives(net,x) 54 | feature_length=feature.shape[0] 55 | #calculate the number of data points 56 | num_data_points=0 57 | for dt in data: 58 | num_data_points+=1 59 | #pre-allocate for np-array 60 | feature_mapping=np.zeros((feature_length,num_data_points), np.float32) 61 | for i in range(num_data_points): 62 | dt=data[i] 63 | if data_set: 64 | data_point=dt[0] 65 | else: 66 | data_point=dt 67 | feature=get_feature_single_derivatives(net,data_point).numpy() 68 | feature_mapping[:,i]=feature 69 | return feature_mapping 70 | 71 | #returns the feature mapping of a single data point x. Assumes that higher order derivatives will not be calculated 72 | 73 | #net: the neural net for which we compute the feature mapping 74 | #x: a single data point 75 | #TODO to avoid repeated code, add in the case for highter order derivatives to this method 76 | def get_feature_single_derivatives(net,x): 77 | y_list=net(x)[0] 78 | w_derivative_list=[] 79 | for i in range(y_list.size()[0]): 80 | y=y_list[i] 81 | params=net.parameters() 82 | for p in params: 83 | p_grad=torch.autograd.grad(y,p,retain_graph=True)[0] 84 | w_derivative_list.append(torch.flatten(p_grad)) 85 | feature =torch.cat(w_derivative_list) 86 | return feature 87 | 88 | 89 | #returns the NTK of the neural net evaluated on input data 90 | 91 | #net: a neural net, assumed to extend nn.Module 92 | #data: a dataset object or a list of (x,label) tuples 93 | def total_ntk(net, data): 94 | ftr_mapping=feature_mapping(net,data).numpy() 95 | krn=np.dot(ftr_mapping.transpose(),ftr_mapping) 96 | return krn 97 | 98 | 99 | #returns an sklearn SVM trained using a feature mapping 100 | 101 | #train_feature_mapping: the feature mapping for computing the SVM (intended to be the feature_mapping function evaluated on a neural net and the training set) 102 | #Y: the labels 103 | #C: the regularization parameter 104 | def svm_from_kernel_matrix(train_feature_mapping,Y,C=1.0): 105 | ftr_mapping=train_feature_mapping.detach().numpy() 106 | krn=np.dot(ftr_mapping.transpose(),ftr_mapping) 107 | svm_fit=SVC(C=C, kernel='precomputed') 108 | 109 | 110 | svm_fit.fit(krn,Y) 111 | return svm_fit 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | #predicts the label of data 120 | 121 | #net: a neural net 122 | #test_loader: a data set of list of (x,label) tuples 123 | #train_feature_mapping: the feature mapping of the training data according to the NTK (i.e., the output of the feature_mapping function evaluated on net and the training set) 124 | #svm: an sklearn SVM using train_feature_mapping along with the labels of the training data 125 | def svm_predict(svm,net, train_feature_mapping, test_loader): 126 | ftr=feature_mapping(net, test_loader).numpy() 127 | inner_prod=np.dot(np.transpose(ftr),train_feature_mapping) 128 | return svm.predict(inner_prod) 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | -------------------------------------------------------------------------------- /experiments/PerturbationExp/pretrained_models/lenet_mnist_model.pth: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/pretrained_models/lenet_mnist_model.pth -------------------------------------------------------------------------------- /experiments/PerturbationExp/smallest_adversarial_example_plotting.py: -------------------------------------------------------------------------------- 1 | 2 | import smallest_adversarial_example 3 | import adversaries 4 | import os 5 | import torch 6 | import torch.nn as nn 7 | import torch.nn.functional as F 8 | from torchvision import datasets, transforms 9 | import pickle 10 | import numpy as np 11 | import platform 12 | from train_full_MNIST_networks import Net_relu 13 | import copy 14 | import ntk_methods 15 | import time 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | def main(): 24 | trial_num=10 25 | test_set= datasets.MNIST('../pretrained_data', train=False, download=True, transform=transforms.Compose([ 26 | transforms.ToTensor(), 27 | ])) 28 | 29 | 30 | train_set= datasets.MNIST('../pretrained_data', train=True, download=True, transform=transforms.Compose([ 31 | transforms.ToTensor(), 32 | ])) 33 | 34 | #uncomment these lines to test this method on a small dataset 35 | #sbset=list(range(0,10)) 36 | #test_set=torch.utils.data.Subset(test_set,sbset) 37 | #sbset=list(range(0,11)) 38 | #train_set=torch.utils.data.Subset(train_set,sbset) 39 | #trial_num=2 40 | 41 | train_data_fraction=1/2 42 | data_num=0 #the size of the dataset 43 | for d in train_set: 44 | data_num+=1 45 | 46 | test_set=torch.utils.data.DataLoader(test_set,batch_size=1) 47 | 48 | loss_function=F.cross_entropy 49 | iterations=20 50 | repetitions=10 51 | p=float("inf") 52 | #it's hard to find the optimal adversarial example, this is a very strong adversary which can be used as a proxy. 53 | def pgd_adversary(x,label,epsilon,model): 54 | return adversaries.pgd_repetitions(x,label,epsilon,model,loss_function,p,iterations,repetitions=repetitions,include_center_initialization=True) 55 | 56 | #note that the adversary defined about includes randomness 57 | #setting the seed: 58 | seed= int(time.time()) 59 | torch.manual_seed(seed) 60 | 61 | #setting up directories 62 | trial_base_name='trial' 63 | parent_parent_dir="models_final" 64 | parent_dir = "smallest_adversarial_example" 65 | pth = os.path.join(parent_parent_dir,parent_dir) 66 | plots_dir=os.path.join(pth,"plots") 67 | pickles_dir=os.path.join(pth,"pickles") 68 | if not os.path.exists(plots_dir): 69 | os.makedirs(plots_dir) 70 | if not os.path.exists(pickles_dir): 71 | os.makedirs(pickles_dir) 72 | 73 | #saving the seed: 74 | seed_path=os.path.join(pickles_dir, "random_seed") 75 | file=open(seed_path,'wb') 76 | pickle.dump(seed,file) 77 | 78 | cos_sims_strong_pgd_list=[] 79 | cos_sims_trivial_list=[] 80 | for i in range(trial_num): 81 | print(str(i)) 82 | 83 | trial_name=trial_base_name+str(i) 84 | 85 | # Parent Directory path 86 | # Directory 87 | trial_name=trial_base_name+str(i) 88 | 89 | prefix=os.path.join(pth,trial_name) 90 | prefix=os.path.join(prefix,trial_name) 91 | 92 | #load the neural net 93 | model_name=prefix+"model.pt" 94 | model=Net_relu() 95 | model.load_state_dict(torch.load(model_name, map_location='cpu')) 96 | model.eval() 97 | 98 | #we evaluate on a fraction of the training data to avoid running out of memory 99 | subset_size=round(data_num*train_data_fraction) 100 | perm=np.random.permutation(data_num) 101 | sbset=list(perm[0:subset_size]) 102 | train_sbset=torch.utils.data.Subset(train_set,sbset) 103 | 104 | 105 | #computing the feature mapping for the ntk 106 | feature_mapping=ntk_methods.feature_mapping(model,train_sbset,return_torch_tensor=False) 107 | 108 | #calculating and saving the cosine similarities between the smallest adversarial attack and the feature mapping 109 | cos_sims_strong_pgd_list.append(smallest_adversarial_example.cosine_similarities_at_smallest_perturbation_vectorized(test_loader=test_set,model=model, 110 | feature_mapping=feature_mapping,attack=pgd_adversary,upper_bound_guess=1,strict=True)) 111 | 112 | #calculating and saving the cosine similarities between natural data and the feature mapping 113 | lsts=smallest_adversarial_example.cosine_similarities_of_attack_vectorized(test_loader=test_set,model=model, 114 | feature_mapping=feature_mapping,attack=adversaries.trivial_attack) 115 | lst=np.concatenate((lsts[0],lsts[1])) 116 | cos_sims_trivial_list.append(lst) 117 | 118 | 119 | 120 | #saving the cosine similarities for the smallest adversarial perturbations 121 | file_name_base_pgd='full_mnist_10_trials_strong_pgd' 122 | file_name_pgd_pickle=os.path.join(pickles_dir,file_name_base_pgd) 123 | file=open(file_name_pgd_pickle,'wb') 124 | pickle.dump(cos_sims_strong_pgd_list,file) 125 | 126 | #plotting the histogram of cosine similarities for smallest adversarial perturbations 127 | figure_pth=os.path.join(plots_dir,file_name_base_pgd) 128 | smallest_adversarial_example.attribute_histogram(cos_sims_strong_pgd_list,save_file=figure_pth,rng=(-1,1),bins=None,x_label="cosine similarity", title="Cosine Similarity for Smallest Adversarial Examples") 129 | 130 | #saving the cosine similarities for natural data 131 | file_name_base_trivial='full_mnist_10_trials_no_adversary' 132 | file_name_cossim_trivial_pickle=os.path.join(pickles_dir,file_name_base_trivial+'_cossim.p') 133 | file=open(file_name_cossim_trivial_pickle,'wb') 134 | pickle.dump(cos_sims_trivial_list,file) 135 | 136 | 137 | #plotting the histogram of cosine similarities for natural data 138 | figure_pth=os.path.join(plots_dir,file_name_base_trivial) 139 | smallest_adversarial_example.attribute_histogram(cos_sims_trivial_list,save_file=figure_pth,rng=(-1,1),bins=None,x_label="cosine similarity",title="Cosine Similarity with NTK for Natural Data") 140 | 141 | 142 | 143 | 144 | if __name__ == "__main__": 145 | if platform.platform() == "Windows-10-10.0.19042-SP0": 146 | os.chdir("C:\\Users\\fran316\\OneDrive - PNNL\\Documents\\experiments") 147 | else: 148 | os.chdir("/people/fran316/experiments") 149 | 150 | main() -------------------------------------------------------------------------------- /experiments/PerturbationExp/testing_pickles/adversarial_test_test.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/testing_pickles/adversarial_test_test.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/testing_pickles/adversarial_training_test.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/testing_pickles/adversarial_training_test.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/testing_pickles/classic_adversarial_training_test.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/testing_pickles/classic_adversarial_training_test.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/testing_pickles/fgsm_test.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/testing_pickles/fgsm_test.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/testing_pickles/pgd_test.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/experiments/PerturbationExp/testing_pickles/pgd_test.p -------------------------------------------------------------------------------- /experiments/PerturbationExp/train_binary_MNIST_sigmoid_networks.py: -------------------------------------------------------------------------------- 1 | #for training 10 trials of a fully connected 3-layer network to classify handwritten digits (MNIST dataset) 2 | import pickle 3 | import adversaries 4 | import adversarial_training 5 | import torch 6 | import torch.nn as nn 7 | import torch.nn.functional as F 8 | from torchvision import datasets, transforms 9 | import torch.optim as optim 10 | import time 11 | import os 12 | import platform 13 | import argparse 14 | 15 | 16 | 17 | 18 | 19 | 20 | #defining the neural net 21 | class Net_sigmoid(nn.Module): 22 | def __init__(self): 23 | super(Net_sigmoid, self).__init__() 24 | self.fc1 = nn.Linear(28*28,100 ) 25 | self.fc2 = nn.Linear(100,100 ) 26 | self.fc3 = nn.Linear(100,100 ) 27 | #self.fc4 = nn.Linear(100,100 ) 28 | self.fc4= nn.Linear(100,2) 29 | 30 | def forward(self, x): 31 | sigmoid=nn.Sigmoid() 32 | x = sigmoid(self.fc1(torch.flatten(x,start_dim=1))) 33 | x = sigmoid(self.fc2(x)) 34 | x = sigmoid(self.fc3(x)) 35 | #x = sigmoid(self.fc4(x)) 36 | x= self.fc4(x) 37 | return x 38 | #return F.log_softmax(x, dim=1) 39 | 40 | 41 | 42 | #training the nets 43 | def main(): 44 | #'trial name' is an input from the command line, so that 10 trials can be trained in parallel 45 | parser=argparse.ArgumentParser(description="trial name") 46 | parser.add_argument('trial_name',metavar='trl',type=ascii,nargs=1,help='name of the trial run' ) 47 | try: 48 | args=parser.parse_args() 49 | trial_name=args.trial_name[0] 50 | except (SystemExit, TypeError) as error: 51 | trial_name="default_trial" 52 | epochs=100 53 | eps_list=[0, 0.05, 0.1, 0.15, 0.20, 0.25,.30]#a neural net is adversarially trained for every perturbation radius in this list 54 | 55 | device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") 56 | mnist_train_set= datasets.MNIST('../data', train=True, download=True, transform=transforms.Compose([ 57 | transforms.ToTensor(),])) 58 | mnist_train_sbset=[] 59 | 60 | #the net is only trained on the 1,7 instances of MNIST 61 | for (data, label) in mnist_train_set: 62 | if label==1: 63 | mnist_train_sbset.append((data,label)) 64 | elif label==7: 65 | mnist_train_sbset.append((data,0)) 66 | for epsilon in eps_list: 67 | seed= int(time.time()) 68 | torch.manual_seed(seed) 69 | start=time.time() 70 | train_loader = torch.utils.data.DataLoader(mnist_train_sbset,batch_size=64, shuffle=True) 71 | 72 | model=Net_sigmoid() 73 | learning_rate=.0001 74 | optimizer = optim.AdamW(model.parameters(), lr=learning_rate) 75 | 76 | 77 | loss_function=F.cross_entropy 78 | 79 | #defining the adversary 80 | p=float('inf') 81 | iter=7 82 | if epsilon!=0: 83 | def adversary(model,x,y): 84 | return adversaries.pgd_attack_p(x,y,epsilon,model,loss_function,p,iter,device=device,rand_init=True) 85 | adv_name='pgd'+str(iter) 86 | else: 87 | adversary=adversaries.trivial_attack 88 | adv_name='None' 89 | 90 | train_error_list, classification_error_list=adversarial_training.classic_adversarial_training(model, epochs, train_loader, adversary, optimizer, loss_function,1,device=device) 91 | variables_dict={"epochs":epochs,"epsilon":epsilon,"adversary":adv_name,"loss_function":loss_function,"iterations":iter,"p":p,"digits":(7,1),"training_error":train_error_list,"classification_error":classification_error_list,"random_seed": seed} 92 | 93 | 94 | # Parent Directory path 95 | parent_parent_dir = "models_final" 96 | parent_dir="binary_sigmoid_models" 97 | # Directory 98 | 99 | #creating files if they don't already exist 100 | if not os.path.isdir(parent_parent_dir): 101 | os.mkdir(parent_parent_dir) 102 | path = os.path.join(parent_parent_dir,parent_dir) 103 | if not os.path.isdir(path): 104 | os.mkdir(path) 105 | prefix=os.path.join(path,trial_name) 106 | if not os.path.isdir(prefix): 107 | os.mkdir(prefix) 108 | prefix=os.path.join(prefix,trial_name+"_epsilon="+str(epsilon)) 109 | 110 | 111 | 112 | 113 | file=open(prefix+"_hyperparameters.p",'wb') 114 | pickle.dump(variables_dict,file) 115 | file.close() 116 | 117 | torch.save(model.state_dict(),prefix+"model.pt") 118 | torch.save(optimizer.state_dict(),prefix+"optimizer.pt") 119 | end=time.time() 120 | print(end-start, "\n") 121 | 122 | 123 | 124 | if __name__ == "__main__": 125 | if platform.platform() == "Windows-10-10.0.19042-SP0": 126 | os.chdir("C:\\Users\\fran316\\OneDrive - PNNL\\Documents\\experiments") 127 | else: 128 | os.chdir("/people/fran316/experiments") 129 | main() 130 | -------------------------------------------------------------------------------- /experiments/PerturbationExp/train_full_MNIST_networks.py: -------------------------------------------------------------------------------- 1 | #for training 10 trials of a fully connected 3-layer network to classify handwritten digits (MNIST dataset) 2 | import adversaries 3 | import adversarial_training 4 | import torch 5 | import pickle 6 | import adversaries 7 | import adversarial_training 8 | import torch 9 | import torch.nn as nn 10 | import torch.nn.functional as F 11 | from torchvision import datasets, transforms 12 | import torch.optim as optim 13 | import time 14 | import os 15 | import platform 16 | 17 | 18 | 19 | #the neural net class 20 | class Net_relu(nn.Module): 21 | def __init__(self): 22 | super(Net_relu, self).__init__() 23 | self.fc1 = nn.Linear(28*28,100 ) 24 | self.fc2 = nn.Linear(100,100 ) 25 | self.fc3 = nn.Linear(100,100 ) 26 | #self.fc4 = nn.Linear(100,100 ) 27 | self.fc4= nn.Linear(100,10) 28 | 29 | def forward(self, x): 30 | x = F.relu(self.fc1(torch.flatten(x,start_dim=1))) 31 | x = F.relu(self.fc2(x)) 32 | x = F.relu(self.fc3(x)) 33 | #x = F.relu(self.fc4(x)) 34 | x= self.fc4(x) 35 | 36 | return x 37 | 38 | #kaiming normal initialization for the weights 39 | def init_weights(m): 40 | if isinstance(m, torch.nn.Linear): 41 | torch.nn.init.kaiming_normal_(m.weight,a=0.01) 42 | m.bias.data.fill_(0.0) 43 | pass 44 | 45 | #train and save 10 networks 46 | def main(): 47 | epochs=100 48 | trial_number=10 49 | 50 | device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") 51 | mnist_train_set= datasets.MNIST('../data', train=True, download=True, transform=transforms.Compose([ 52 | transforms.ToTensor(),])) 53 | for trl in range(trial_number): 54 | seed= int(time.time()) 55 | torch.manual_seed(seed) 56 | start=time.time() 57 | train_loader = torch.utils.data.DataLoader(mnist_train_set,batch_size=64, shuffle=True) 58 | 59 | model=Net_relu() 60 | model.apply(init_weights) 61 | learning_rate=.001 62 | optimizer = optim.AdamW(model.parameters(), lr=learning_rate) 63 | 64 | 65 | loss_function=F.cross_entropy 66 | 67 | adversary=adversaries.trivial_attack 68 | 69 | train_error_list, classification_error_list=adversarial_training.classic_adversarial_training(model, epochs, train_loader, adversary, optimizer, loss_function,1,device=device) 70 | variables_dict={"epochs":epochs,"epsilon":0,"loss_function":loss_function,"trial_index":trl,"training_error":train_error_list,"classification_error":classification_error_list,"random_seed": seed} 71 | 72 | 73 | # Parent Directory path 74 | parent_parent_dir="models_final" 75 | parent_dir = "smallest_adversarial_example" 76 | # Directory 77 | trial_name="trial"+str(trl) 78 | if not os.path.isdir(parent_parent_dir): 79 | os.mkdir(parent_parent_dir) 80 | path = os.path.join(parent_parent_dir,parent_dir) 81 | if not os.path.isdir(path): 82 | os.mkdir(path) 83 | prefix=os.path.join(path,trial_name) 84 | if not os.path.isdir(prefix): 85 | os.mkdir(prefix) 86 | prefix=os.path.join(prefix,trial_name) 87 | 88 | 89 | 90 | 91 | 92 | 93 | file=open(prefix+"_hyperparameters.p",'wb') 94 | pickle.dump(variables_dict,file) 95 | file.close() 96 | 97 | torch.save(model.state_dict(),prefix+"model.pt") 98 | torch.save(optimizer.state_dict(),prefix+"optimizer.pt") 99 | end=time.time() 100 | print(end-start, "\n") 101 | 102 | 103 | 104 | if __name__ == "__main__": 105 | if platform.platform() == "Windows-10-10.0.19042-SP0": 106 | os.chdir("C:\\Users\\fran316\\OneDrive - PNNL\\Documents\\experiments") 107 | else: 108 | os.chdir("/people/fran316/experiments") 109 | main() 110 | -------------------------------------------------------------------------------- /experiments/PerturbationExp/zb-train_full_mnist_networks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | 5 | 6 | #SBATCH -A task0_pmml 7 | #SBATCH -t 3-10 8 | #SBATCH -N 1 9 | 10 | 11 | 12 | #SBATCH -n 1 13 | #SBATCH -J full_mnist 14 | #SBATCH -o out2.txt 15 | #SBATCH -e err2.txt 16 | 17 | 18 | 19 | #SBATCH -p dl_shared 20 | #SBATCH --gres=gpu:1 21 | 22 | 23 | 24 | 25 | #cd to directory you want 26 | 27 | cd ~/experiments 28 | 29 | #load python environment 30 | module load python/miniconda3.9 31 | #load cuda 32 | module load cuda/10.2.89 33 | #to initialize conda environment: 34 | source /share/apps/python/miniconda3.9/etc/profile.d/conda.sh 35 | 36 | 37 | 38 | conda activate my_env2 39 | 40 | python train_full_MNIST_networks.py 41 | 42 | -------------------------------------------------------------------------------- /experiments/PerturbationExp/zt-ntk_and_svm_test.py: -------------------------------------------------------------------------------- 1 | import ntk_methods 2 | import os 3 | import torch.nn as nn 4 | import torch 5 | import torch.nn.functional as F 6 | from torchvision import datasets, transforms 7 | import numpy as np 8 | import platform 9 | import binary_torch_svm 10 | 11 | 12 | 13 | 14 | 15 | 16 | class Net(nn.Module): 17 | def __init__(self): 18 | super(Net, self).__init__() 19 | self.conv1 = nn.Conv2d(1, 10, kernel_size=5) 20 | self.conv2 = nn.Conv2d(10, 20, kernel_size=5) 21 | self.conv2_drop = nn.Dropout2d() 22 | self.fc1 = nn.Linear(320, 50) 23 | self.fc2 = nn.Linear(50, 10) 24 | 25 | def forward(self, x): 26 | x = F.relu(F.max_pool2d(self.conv1(x), 2)) 27 | x = F.relu(F.max_pool2d(self.conv2_drop(self.conv2(x)), 2)) 28 | x = x.view(-1, 320) 29 | x = F.relu(self.fc1(x)) 30 | x = F.dropout(x, training=self.training) 31 | x = self.fc2(x) 32 | return F.log_softmax(x, dim=1) 33 | 34 | def svm_performance_test(): 35 | pretrained_model = "pretrained_models/lenet_mnist_model.pth" 36 | 37 | # Initialize the network 38 | model1 = Net().to('cpu') 39 | 40 | # Load the pretrained model 41 | model1.load_state_dict(torch.load(pretrained_model, map_location='cpu')) 42 | 43 | # Set the model in evaluation mode. In this case this is for the Dropout layers 44 | model1.eval() 45 | 46 | train_loader_start=datasets.MNIST('../pretrained_data', train=True, download=True, transform=transforms.Compose([ 47 | transforms.ToTensor(), 48 | ])) 49 | sbset=list(range(0,100)) 50 | sbset_1=torch.utils.data.Subset(train_loader_start,sbset) 51 | train_loader=torch.utils.data.DataLoader(sbset_1,batch_size=1) 52 | #train_loader=torch.utils.data.DataLoader(train_loader_start) 53 | 54 | 55 | 56 | test_loader_start= datasets.MNIST('../pretrained_data', train=False, download=True, transform=transforms.Compose([ 57 | transforms.ToTensor(), 58 | ])) 59 | sbset=list(range(0,2)) 60 | sbset_1=torch.utils.data.Subset(test_loader_start,sbset) 61 | test_loader=torch.utils.data.DataLoader(sbset_1,batch_size=1) 62 | dt=ntk_methods.feature_mapping(model1,test_loader).numpy() 63 | 64 | train_features=ntk_methods.feature_mapping(model1,train_loader) 65 | #krn=np.dot(train_features.transpose(),train_features) 66 | Y=[tpl[1].item() for tpl in train_loader] 67 | svm=ntk_methods.svm_from_kernel_matrix(train_features,Y) 68 | 69 | print(ntk_methods.svm_predict(svm,model1,train_features,test_loader)) 70 | print([tpl[1] for tpl in test_loader]) 71 | 72 | 73 | def svm_sklearn_comparison(): 74 | pretrained_model = "pretrained_models/lenet_mnist_model.pth" 75 | # Initialize the network 76 | model1 = Net().to('cpu') 77 | 78 | # Load the pretrained model 79 | model1.load_state_dict(torch.load(pretrained_model, map_location='cpu')) 80 | 81 | # Set the model in evaluation mode. In this case this is for the Dropout layers 82 | model1.eval() 83 | 84 | mnist_train_set= datasets.MNIST('../data', train=True, download=True, transform=transforms.Compose([ 85 | transforms.ToTensor(),])) 86 | mnist_train_sbset=[] 87 | for (data, label) in mnist_train_set: 88 | if label==1: 89 | mnist_train_sbset.append((data,label)) 90 | elif label==7: 91 | mnist_train_sbset.append((data,0)) 92 | 93 | 94 | sbset=list(range(0,100)) 95 | sbset_1=torch.utils.data.Subset(mnist_train_sbset,sbset) 96 | train_loader=torch.utils.data.DataLoader(sbset_1,batch_size=1,shuffle=False) 97 | #train_loader=sbset_1 98 | dt=ntk_methods.feature_mapping(model1,train_loader).numpy() 99 | 100 | 101 | 102 | 103 | train_features=ntk_methods.feature_mapping(model1,train_loader) 104 | #krn=np.dot(train_features.transpose(),train_features) 105 | Y=[tpl[1].item() for tpl in train_loader] 106 | svm=ntk_methods.svm_from_kernel_matrix(train_features,Y) 107 | torch_svm=binary_torch_svm.binary_torch_SVM(model1, svm,train_features) 108 | 109 | mnist_test_set= datasets.MNIST('../data', train=False, download=True, transform=transforms.Compose([ 110 | transforms.ToTensor(),])) 111 | mnist_test_sbset=[] 112 | for (data, label) in mnist_test_set: 113 | if label==1: 114 | mnist_test_sbset.append((data,label)) 115 | elif label==7: 116 | mnist_test_sbset.append((data,0)) 117 | 118 | 119 | 120 | sbset=list(range(0,50)) 121 | sbset_1=torch.utils.data.Subset(mnist_test_sbset,sbset) 122 | x_sbset_1=[x for (x,y) in sbset_1] 123 | test_loader=torch.utils.data.DataLoader(sbset_1,batch_size=1) 124 | sk_learn_predictions=ntk_methods.svm_predict(svm,model1,train_features,test_loader) 125 | torch_predictions=torch_svm.predict(x_sbset_1) 126 | #print(sk_learn_predictions) 127 | #print(torch_predictions) 128 | print(all(sk_learn_predictions==torch_predictions)) 129 | 130 | if __name__ == "__main__": 131 | if platform.platform() == "Windows-10-10.0.19042-SP0": 132 | os.chdir("C:\\Users\\fran316\\OneDrive - PNNL\\Documents\\experiments") 133 | else: 134 | os.chdir("/people/fran316/experiments") 135 | svm_sklearn_comparison() 136 | svm_performance_test() -------------------------------------------------------------------------------- /experiments/PerturbationExp/zt-smallest_adversarial_perturbation_test.py: -------------------------------------------------------------------------------- 1 | import smallest_adversarial_example 2 | import adversaries 3 | import os 4 | import torch 5 | import torch.nn as nn 6 | import torch.nn.functional as F 7 | from torchvision import datasets, transforms 8 | import pickle 9 | import numpy as np 10 | import platform 11 | import ntk_methods 12 | 13 | class Net(nn.Module): 14 | def __init__(self): 15 | super(Net, self).__init__() 16 | self.conv1 = nn.Conv2d(1, 10, kernel_size=5) 17 | self.conv2 = nn.Conv2d(10, 20, kernel_size=5) 18 | self.conv2_drop = nn.Dropout2d() 19 | self.fc1 = nn.Linear(320, 50) 20 | self.fc2 = nn.Linear(50, 10) 21 | 22 | def forward(self, x): 23 | x = F.relu(F.max_pool2d(self.conv1(x), 2)) 24 | x = F.relu(F.max_pool2d(self.conv2_drop(self.conv2(x)), 2)) 25 | x = x.view(-1, 320) 26 | x = F.relu(self.fc1(x)) 27 | x = F.dropout(x, training=self.training) 28 | x = self.fc2(x) 29 | return F.log_softmax(x, dim=1) 30 | 31 | 32 | 33 | def smallest_adversarial_perturbation_test(): 34 | i=0 35 | dset= datasets.MNIST('../pretrained_data', train=False, download=True, transform=transforms.Compose([ 36 | transforms.ToTensor(), 37 | ])) 38 | 39 | data,target=dset[0] 40 | 41 | pretrained_model = "pretrained_models/lenet_mnist_model.pth" 42 | 43 | # Initialize the network 44 | model = Net().to('cpu') 45 | 46 | # Load the pretrained model 47 | model.load_state_dict(torch.load(pretrained_model, map_location='cpu')) 48 | 49 | # Set the model in evaluation mode. In this case this is for the Dropout layers 50 | model.eval() 51 | p=2 52 | iter=5 53 | def fgsm_adversary(x, label, epsilon,model): 54 | return adversaries.fgsm_attack_p(x,label,epsilon,model,loss_function,p) 55 | 56 | def pgd_adversary(x,label,epsilon,model): 57 | return adversaries.pgd_attack_p(x,label,epsilon,model,loss_function,p,iter) 58 | 59 | advs=[fgsm_adversary, pgd_adversary] 60 | loss_function=F.nll_loss 61 | data.requires_grad=True 62 | for adv in advs: 63 | radius,example=smallest_adversarial_example.smallest_adversarial_perturbation(data, target,model, adv) 64 | pred=model(example) 65 | _, predicted = pred.max(1) 66 | correct=predicted.eq(target).item() 67 | example2=adv(data,target,radius-10**-4,model) 68 | pred2=model(example2) 69 | _, predicted2 = pred2.max(1) 70 | correct2=predicted2.eq(target).item() 71 | print([not correct, correct2]) 72 | 73 | 74 | 75 | 76 | def attribute_histogram_test(): 77 | test_loader_start= datasets.MNIST('../pretrained_data', train=False, download=True, transform=transforms.Compose([ 78 | transforms.ToTensor(), 79 | ])) 80 | sbset=list(range(0,2)) 81 | sbset_1=torch.utils.data.Subset(test_loader_start,sbset) 82 | test_loader=torch.utils.data.DataLoader(sbset_1,batch_size=1) 83 | #test_loader=torch.utils.data.DataLoader(test_loader_start) 84 | train_loader_start=datasets.MNIST('../pretrained_data', train=True, download=True, transform=transforms.Compose([ 85 | transforms.ToTensor(), 86 | ])) 87 | sbset=list(range(0,2)) 88 | sbset_1=torch.utils.data.Subset(train_loader_start,sbset) 89 | train_loader=torch.utils.data.DataLoader(sbset_1,batch_size=1) 90 | #train_loader=torch.utils.data.DataLoader(train_loader_start) 91 | loss_function=F.nll_loss; 92 | p=float('inf') 93 | def attack(x,label,epsilon,model): 94 | return adversaries.fgsm_attack_p(x,label,epsilon,model,loss_function,p) 95 | 96 | iterations=20 97 | repetitions=10 98 | def pgd_adversary(x,label,epsilon,model): 99 | return adversaries.pgd_repetitions(x,label,epsilon,model,loss_function,p,iterations,repetitions=repetitions,include_center_initialization=True) 100 | 101 | def attribute(model, tpl): 102 | x=tpl[0] 103 | label=tpl[1] 104 | epsilon,example= smallest_adversarial_example.smallest_adversarial_perturbation(x,label,model,attack,strict=True) 105 | return (epsilon,) 106 | def attribute_cossim(model,tpl): 107 | x=tpl[0] 108 | label=tpl[1] 109 | epsilon,example= smallest_adversarial_example.smallest_adversarial_perturbation(x,label,model,pgd_adversary) 110 | ntk_load=np.load('temporary\\MNIST_adversarial\\NTK_dict.npy',allow_pickle=True).item() 111 | ntk=[ ntk_load[key][1:10000,1:10000] for key in ntk_load.keys()] 112 | 113 | 114 | pretrained_model = "pretrained_models/lenet_mnist_model.pth" 115 | 116 | # Initialize the network 117 | model1 = Net().to('cpu') 118 | 119 | # Load the pretrained model 120 | model1.load_state_dict(torch.load(pretrained_model, map_location='cpu')) 121 | 122 | # Set the model in evaluation mode. In this case this is for the Dropout layers 123 | model1.eval() 124 | 125 | def model2(x): 126 | pred=model1(x); 127 | pred[0]=2*pred[0] 128 | return pred 129 | 130 | model_list=[model1] 131 | 132 | #file_name="temporary_pickles\\perturbation_radius.p" 133 | #smallest_adversarial_example.calculate_attribute(model_list,test_loader,attribute,file_names=[file_name]) 134 | #file=open(file_name,'rb') 135 | #values_list=pickle.load(file) 136 | file_name_base="MNIST_all" 137 | file_name=os.path.join("temporary_pickles",file_name_base) 138 | feature_mapping_list=[] 139 | for model in model_list: 140 | ntk=ntk_methods.feature_mapping(model,train_loader) 141 | feature_mapping_list.append(ntk.detach().numpy()) 142 | smallest_adversarial_example.calculate_smallest_perturbations_and_cossim( test_loader,model_list, feature_mapping_list,pgd_adversary,file_name=file_name,strict=False) 143 | file=open(file_name+'_cossim.p', 'rb') 144 | values_list=pickle.load(file) 145 | figure_pth=os.path.join("plots",file_name_base) 146 | smallest_adversarial_example.attribute_histogram(values_list,save_file=figure_pth,rng=(0,1),bins=None,x_label="cosine similarity") 147 | 148 | 149 | 150 | 151 | if __name__ == "__main__": 152 | if platform.platform() == "Windows-10-10.0.19042-SP0": 153 | os.chdir("C:\\Users\\fran316\\OneDrive - PNNL\\Documents\\experiments") 154 | else: 155 | os.chdir("/people/fran316/experiments") 156 | smallest_adversarial_perturbation_test() 157 | 158 | 159 | -------------------------------------------------------------------------------- /experiments/PerturbationExp/zt-training_methods_test.py: -------------------------------------------------------------------------------- 1 | import adversaries 2 | import adversarial_training 3 | import torch 4 | import pickle 5 | import torch.nn as nn 6 | import torch.nn.functional as F 7 | from torchvision import datasets, transforms 8 | import numpy as np 9 | import os 10 | import torch.optim as optim 11 | import train_binary_MNIST_sigmoid_networks 12 | class Net(nn.Module): 13 | def __init__(self): 14 | super(Net, self).__init__() 15 | self.conv1 = nn.Conv2d(1, 10, kernel_size=5) 16 | self.conv2 = nn.Conv2d(10, 20, kernel_size=5) 17 | self.conv2_drop = nn.Dropout2d() 18 | self.fc1 = nn.Linear(320, 50) 19 | self.fc2 = nn.Linear(50, 10) 20 | 21 | def forward(self, x): 22 | x = F.relu(F.max_pool2d(self.conv1(x), 2)) 23 | x = F.relu(F.max_pool2d(self.conv2_drop(self.conv2(x)), 2)) 24 | x = x.view(-1, 320) 25 | x = F.relu(self.fc1(x)) 26 | x = F.dropout(x, training=self.training) 27 | x = self.fc2(x) 28 | return F.log_softmax(x, dim=1) 29 | 30 | def classic_adversarial_training_test(compare=True,boolean_output=True): 31 | train_loader = torch.utils.data.DataLoader( 32 | datasets.MNIST('../data', train=True, download=True, transform=transforms.Compose([ 33 | transforms.ToTensor(), 34 | ])), 35 | batch_size=3, shuffle=True) 36 | test_loader = torch.utils.data.DataLoader( 37 | datasets.MNIST('../data', train=False, download=True, transform=transforms.Compose([ 38 | transforms.ToTensor(), 39 | ])), 40 | batch_size=1, shuffle=True) 41 | model=Net() 42 | learning_rate=.1 43 | optimizer = optim.SGD(model.parameters(), lr=learning_rate, momentum=0.9) 44 | 45 | 46 | epochs=1 47 | epsilon=3 48 | loss_function=F.nll_loss 49 | p=2 50 | iter=2 51 | def adversary_fgsm(model,x,y): 52 | #x=x+torch.zeros_like(x) 53 | #x.retain_grad() 54 | return adversaries.fgsm_attack_p(x,y,epsilon,model,loss_function,p) 55 | def adversary_pgd(model,x,y): 56 | return adversaries.pgd_attack_p(x,y,epsilon,model,loss_function,p,iter) 57 | trivial_adversary=adversaries.trivial_attack 58 | device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") 59 | #print(test( model, test_loader, adversary, loss_function, device,adv_classification_risk=False)) 60 | torch.manual_seed(1) 61 | train_error_list=[0]*2 62 | classification_error_list=[0]*2 63 | 64 | train_error_list[0], classification_error_list[0]=adversarial_training.classic_adversarial_training(model, epochs, test_loader, adversary_fgsm, optimizer, loss_function,1,device) 65 | train_error_list[1], classification_error_list[1]=adversarial_training.classic_adversarial_training(model, epochs, test_loader, adversary_pgd, optimizer, loss_function,1,device) 66 | if compare: 67 | lst=[train_error_list] 68 | file=open("testing_pickles/classic_adversarial_training_test.p", "rb") 69 | te_comp,ce_comp=pickle.load(file) 70 | file.close() 71 | te_comp=np.array(te_comp) 72 | ce_comp=np.array(ce_comp) 73 | train_error_list=np.array(train_error_list) 74 | classification_error_list=np.array(classification_error_list) 75 | if boolean_output: 76 | print([np.equal(classification_error_list,ce_comp), np.equal(train_error_list, te_comp)]) 77 | else: 78 | print([np.linalg.norm(classification_error_list-ce_comp), np.linalg.norm(train_error_list- te_comp)]) 79 | 80 | 81 | else: 82 | lst=[train_error_list,classification_error_list] 83 | file=open("testing_pickles/classic_adversarial_training_test.p", "wb") 84 | pickle.dump(lst,file) 85 | file.close() 86 | 87 | 88 | def test_function_test(compare=True, boolean_output=True): 89 | test_loader = torch.utils.data.DataLoader( 90 | datasets.MNIST('../data', train=False, download=True, transform=transforms.Compose([ 91 | transforms.ToTensor(), 92 | ])), 93 | batch_size=1, shuffle=True) 94 | model=Net() 95 | 96 | device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") 97 | #print(test( model, test_loader, adversary, loss_function, device,adv_classification_risk=False)) 98 | torch.manual_seed(1) 99 | train_error_list=[0]*2 100 | classification_error_list=[0]*2 101 | loss_function=F.nll_loss 102 | epsilon=.3 103 | p=float('inf') 104 | iter=2 105 | def adversary_fgsm(model,x,y): 106 | #x=x+torch.zeros_like(x) 107 | #x.retain_grad() 108 | return adversaries.fgsm_attack_p(x,y,epsilon,model,loss_function,p) 109 | def adversary_pgd(model,x,y): 110 | #x=x+torch.zeros_like(x) 111 | return adversaries.pgd_attack_p(x,y,epsilon,model,loss_function,p,iter) 112 | train_error_list[0],classification_error_list[0]=adversarial_training.test(model,test_loader,adversary_fgsm,loss_function,device) 113 | train_error_list[1],classification_error_list[1]=adversarial_training.test(model,test_loader,adversary_pgd,loss_function,device) 114 | if compare: 115 | lst=[train_error_list] 116 | file=open("testing_pickles/adversarial_test.p", "rb") 117 | te_comp,ce_comp=pickle.load(file) 118 | file.close() 119 | te_comp=np.array(te_comp) 120 | ce_comp=np.array(ce_comp) 121 | train_error_list=np.array(train_error_list) 122 | classification_error_list=np.array(classification_error_list) 123 | if boolean_output: 124 | print([np.equal(classification_error_list,ce_comp), np.equal(train_error_list, te_comp)]) 125 | else: 126 | print([np.linalg.norm(classification_error_list-ce_comp), np.linalg.norm(train_error_list- te_comp)]) 127 | 128 | 129 | else: 130 | lst=[train_error_list,classification_error_list] 131 | file=open("testing_pickles/adversarial_test_test.p", "wb") 132 | pickle.dump(lst,file) 133 | file.close() 134 | 135 | 136 | 137 | #TODO: this test throws an error, need to change train_loader and test_loader so that it is binary classification 138 | def small_test_train_networks(): 139 | model=train_binary_MNIST_sigmoid_networks.Net_sigmoid() 140 | train_loader = torch.utils.data.DataLoader( 141 | datasets.MNIST('../data', train=True, download=True, transform=transforms.Compose([ 142 | transforms.ToTensor(), 143 | ])), 144 | batch_size=1, shuffle=True) 145 | test_loader = torch.utils.data.DataLoader( 146 | datasets.MNIST('../data', train=False, download=True, transform=transforms.Compose([ 147 | transforms.ToTensor(), 148 | ])), 149 | batch_size=1, shuffle=True) 150 | learning_rate=.001 151 | optimizer = optim.SGD(model.parameters(), lr=learning_rate) 152 | 153 | 154 | loss_function=F.cross_entropy 155 | p=float('inf') 156 | adversary=adversaries.trivial_attack 157 | class_error_start=adversarial_training.test(model,test_loader,adversary,loss_function) 158 | print('initial classification error:'+str(class_error_start)) 159 | epochs=1 160 | train_error_list, classification_error_list=adversarial_training.classic_adversarial_training(model, epochs, train_loader, adversary, optimizer, loss_function,1,device='cpu') 161 | class_error_end=adversarial_training.test(model,test_loader,adversary,loss_function) 162 | print('initial classification error:'+str(class_error_end)) 163 | 164 | 165 | if __name__ == "__main__": 166 | os.chdir("C:\\Users\\fran316\\OneDrive - PNNL\\Documents\\experiments") 167 | #classic_adversarial_training_test(compare=True,boolean_output=False) 168 | #test_function_test(compare=True, boolean_output=True) 169 | small_test_train_networks() 170 | 171 | -------------------------------------------------------------------------------- /experiments/SpectralExp/hessian.py: -------------------------------------------------------------------------------- 1 | import tensorflow as tf 2 | import numpy as np 3 | import matplotlib as mpl 4 | import matplotlib.pyplot as plt 5 | #import logging 6 | #logging.getLogger('tensorflow').disabled = True 7 | 8 | mpl.rcParams['figure.figsize'] = (8, 6) 9 | #tf.random.set_seed(1234) 10 | 11 | def computing_Hessian(m=10, n_0=10, n_1=10, n_2=10, 12 | activation=tf.nn.relu, title='relu', xlim=[-8,8], bins = np.linspace(-8, 8, 120)): 13 | x = tf.random.normal([m, n_0]) 14 | layer1 = tf.keras.layers.Dense(n_1, activation=activation) 15 | layer2 = tf.keras.layers.Dense(n_2, activation=tf.keras.activations.linear) 16 | with tf.GradientTape(persistent=True) as t2: 17 | with tf.GradientTape(persistent=True) as t1: 18 | x1 = layer1(x) 19 | x2 = layer2(x1) 20 | g1,g2 = t1.jacobian(x2, [layer1.kernel,layer2.kernel]) 21 | f1,f2 = t2.jacobian(g1, [layer1.kernel,layer2.kernel]) 22 | print(g1.shape) 23 | print(g2.shape) 24 | print(f1.shape) 25 | print(f2.shape) 26 | n_params1 = tf.reduce_prod(layer1.kernel.shape) 27 | n_params2 = tf.reduce_prod(layer2.kernel.shape) 28 | n_input = tf.reduce_prod(x2.shape) 29 | g1_vec = tf.reshape(g1, [n_input,n_params1]) 30 | print(g1_vec.shape) 31 | g2_vec = tf.reshape(g2, [n_input,n_params2]) 32 | print(g2_vec.shape) 33 | g = tf.concat([g1_vec, g2_vec], 1) 34 | print(g.shape) 35 | H_0 = tf.linalg.matmul(tf.transpose(g),g)/m 36 | print(H_0.shape) 37 | f1_vec = tf.reshape(f1, [m,n_2,n_params1,n_params1]) 38 | print(f1_vec.shape) 39 | f2_vec = tf.reshape(f2, [m,n_2,n_params1,n_params2]) 40 | print(f2_vec.shape) 41 | f11 = tf.concat([f1_vec, f2_vec], -1) 42 | print(f11.shape) 43 | f3_vec = tf.transpose(f2_vec,perm=[0,1,3,2]) 44 | print(f3_vec.shape) 45 | f4_vec = tf.zeros([m,n_2,n_params2,n_params2]) 46 | print(f4_vec.shape) 47 | f22 = tf.concat([f3_vec, f4_vec], -1) 48 | print(f22.shape) 49 | H_11 = tf.concat([f11, f22], 2) 50 | print(H_11.shape) 51 | H_1=tf.zeros([H_0.shape[0],H_0.shape[1]]) 52 | for i in range(m): 53 | for j in range(n_2): 54 | H_1 = H_1 + x2[i,j]*H_11[i,j,:,:] 55 | H_1 = H_1/m 56 | print(H_1.shape) 57 | H = H_0+H_1 58 | eigs0,_ = tf.linalg.eigh(H) 59 | initializer = tf.keras.initializers.Orthogonal() 60 | O = initializer(shape=H_1.shape) 61 | H_new = H_0 + tf.linalg.matmul(O,tf.linalg.matmul(H_1,tf.transpose(O))) 62 | eigs1,_ = tf.linalg.eigh(H_new) 63 | plt.hist(eigs0.numpy(), bins, alpha=0.5, label='original') 64 | #plt.hist(eigs1.numpy(), bins, alpha=0.5, label='new') 65 | plt.legend(loc='upper right') 66 | plt.title(title) 67 | #plt.xlim(xlim) 68 | plt.show() 69 | plt.savefig("Hessian_m=%d_n0=%d_n_1=%d.png"% (m,n_0,n_1)) 70 | return eigs0.numpy(), eigs1.numpy() 71 | 72 | eig_old,eig_new=computing_Hessian(m=140, n_0=13, n_1=13, n_2=2, 73 | activation=tf.nn.sigmoid, title='sigmoid', xlim=[-2,2], bins = 45) 74 | #eig_old,eig_new=computing_Hessian(m=150, n_0=12, n_1=12, n_2=2, activation=tf.nn.relu, title='relu', xlim=[-2,2], bins = 50) 75 | print(eig_old, flush=True) 76 | print(eig_new, flush=True) 77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /experiments/SpectralExp/lr.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import numpy.random as npr 3 | 4 | from tqdm import tqdm 5 | 6 | import matplotlib 7 | matplotlib.use('pdf') 8 | from mpl_toolkits import mplot3d 9 | import matplotlib.pyplot as plt 10 | plt.style.use('seaborn-white') 11 | 12 | import torch 13 | device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') 14 | 15 | # relu 16 | # b0 = 1/4 17 | # b1 = 1/4 18 | def relu(X,normalize=True): 19 | X[X<0] = 0 20 | if normalize: 21 | return np.sqrt(2*np.pi/(np.pi-1))*(X-1/np.sqrt(2*np.pi)) 22 | else: 23 | return X 24 | 25 | def relu_grad(X,normalize=True): 26 | X[X<0] = 0 27 | X[X>0] = 1 28 | if normalize: 29 | X[X>0] = np.sqrt(2*np.pi/(np.pi-1)) 30 | return X 31 | 32 | # softplus 33 | # b0 = 1/4 34 | # b1 = 0.043379 35 | SP = torch.nn.Softplus() 36 | def softplus(X,normalize=True): 37 | if normalize: 38 | c0 = 0.806059 39 | c1 = 0.271514 40 | return (SP(X)-c0) / (c1)**0.5 41 | else: 42 | return SP(X) 43 | 44 | def softplus_grad(X,normalize=True): 45 | if normalize: 46 | c1 = 0.271514 47 | return torch.sigmoid(X) / (c1)**0.5 48 | else: 49 | return torch.sigmoid(X) 50 | 51 | # sigmoid 52 | # b0=0.042692 53 | # b1 =0.002144 54 | def sigmoid(X,normalize=True): 55 | X = torch.sigmoid(X) 56 | if normalize: 57 | c = np.sqrt(0.21747 / (2 * np.sqrt(2 * np.pi))) 58 | return (X-0.5)/c 59 | else: 60 | return X 61 | 62 | def sigmoid_grad(X,normalize=True): 63 | X = torch.sigmoid(X) 64 | if normalize: 65 | c = np.sqrt(0.21747 / (2 * np.sqrt(2 * np.pi))) 66 | return X * (1-X) / c 67 | else: 68 | return X * (1-X) 69 | 70 | def tanh(X,normalize=False): 71 | X = torch.tanh(X) 72 | if normalize: 73 | c = 0.627928 74 | return X / c 75 | else: 76 | c = 5 77 | return X * c 78 | 79 | def tanh_grad(X,normalize=False): 80 | X = torch.tanh(X) 81 | if normalize: 82 | c = 0.627928 83 | return (1 - X**2) / c 84 | else: 85 | c = 5 86 | return (1 - X**2) * c 87 | 88 | def quadratic(X,normalize=True): 89 | if normalize: 90 | return (X**2-1) / np.sqrt(2) 91 | else: 92 | return X**2 / 2 93 | 94 | def quadratic_grad(X,normalize=True): 95 | if normalize: 96 | return np.sqrt(2)*X 97 | else: 98 | return X 99 | 100 | def linear(X): 101 | return X 102 | 103 | def linear_grad(X): 104 | return X*0 + 1 105 | 106 | # activation function 107 | act = relu 108 | grad = relu_grad 109 | 110 | # scaling of parameters 111 | alpha1 = 0.5 112 | alpha2 = 0.5 113 | 114 | # whether both layers are optimized 115 | train_2nd = True 116 | 117 | def unit_Gaussian(n,d): 118 | return torch.FloatTensor(n,d).normal_(mean=0,std=1).to(device) 119 | 120 | def single_index(n,d,n1,sigma=0.1,nonlin=relu): 121 | X = unit_Gaussian(n,d) 122 | X_test = unit_Gaussian(n1,d) 123 | theta = torch.FloatTensor(d,1).normal_(mean=0,std=1).to(device) 124 | theta = theta / torch.norm(theta) 125 | if sigma == 0: 126 | return X, nonlin(X@theta), X_test, nonlin(X_test@theta) 127 | else: 128 | return X, nonlin(X@theta) + torch.FloatTensor(n,1).normal_(mean=0,std=sigma).to(device), X_test, nonlin(X_test@theta) 129 | 130 | def multi_index(n,d,n1,sigma=0.1,ind=1,nonlin=relu): 131 | X = unit_Gaussian(n,d) 132 | X_test = unit_Gaussian(n1,d) 133 | theta = torch.FloatTensor(d,ind).normal_(mean=0,std=1).to(device) 134 | theta = theta / torch.norm(theta) 135 | a = torch.ones([ind,1]).to(device) / (ind**0.5) 136 | Y = nonlin(X@theta)@a 137 | Y_test = nonlin(X_test@theta)@a 138 | if sigma == 0: 139 | return X, Y, X_test, Y_test 140 | else: 141 | return X, Y + torch.FloatTensor(n,1).normal_(mean=0,std=sigma).to(device), X_test, Y_test 142 | 143 | """**Training Data**""" 144 | 145 | SNR = 35 146 | # std of Gaussian 147 | sigma = (1/SNR)**0.5 148 | # sparsity of target function 149 | spar = 1 150 | 151 | print("SNR: %f" % (SNR)) 152 | print("noise: %f" % (sigma)) 153 | 154 | # Y1 - true labels 155 | # Y2 - model prediction 156 | 157 | def mse(Y1,Y2): 158 | return torch.mean((Y1-Y2)**2) 159 | 160 | def logistic(Y1,Y2): 161 | return torch.mean(SP(-Y1*Y2)) 162 | 163 | def mse_grad(Y1,Y2): 164 | return Y1 - Y2 165 | 166 | def logistic_grad(Y1,Y2): 167 | return Y1 * torch.sigmoid(-Y1 * Y2) 168 | 169 | # ------------------------------------ 170 | # Choose objective 171 | 172 | loss_fn = mse 173 | loss_grad = mse_grad 174 | 175 | """**Training Neural Networks**""" 176 | 177 | gamma1 = 0.1 # gamma1 = d/n 178 | gamma2 = 0.8 # gamma2 = h/n 179 | 180 | # L2 regularization 181 | lda = 0 182 | # Learning rate 183 | eta_max = 0.1 184 | eta_min = 0.0001 185 | # Step size 186 | n_max = 4500 187 | n_min = 700 188 | # Number of steps 189 | error = 1e-4 190 | 191 | # -------------------------------------------- 192 | runs = 1 193 | inc= 300 194 | n_list = np.arange(n_min,n_max,inc) 195 | lr_list = np.array([0.0001,0.001,0.01,0.1]) 196 | NN_loss = np.zeros([len(n_list),len(lr_list)]) 197 | NN_weight_diff = np.zeros([len(n_list),len(lr_list),3]) 198 | for i in tqdm(range(len(n_list))): 199 | n = n_list[i] 200 | print(n) 201 | d = int(n*gamma1) 202 | h = int(n*gamma2) 203 | # training and test data with noise 204 | X,Y,X_test,Y_test = multi_index(n,d,int(2*n/3),sigma=0,ind=1,nonlin=sigmoid) 205 | for j in tqdm(range(len(lr_list))): 206 | W = torch.FloatTensor(d,h).normal_(mean=0,std=(1/d)**alpha1).to(device) 207 | b = torch.FloatTensor(h,1).normal_(mean=0,std=(1/h)**alpha2).to(device) 208 | #s0= torch.linalg.eigvalsh(W@torch.t(W)) 209 | Ws = W.clone() 210 | bs = b.clone() 211 | XX = X@torch.t(X) / d 212 | CK0 = act(X@W)@torch.t(act(X@W)) / h 213 | eta_w = lr_list[j] 214 | eta_b = lr_list[j] 215 | XW_grad0 = grad(X@W) 216 | S0 = XW_grad0*((torch.ones(n, 1).to(device))@torch.t(b)) 217 | RF0 = S0@torch.t(S0) 218 | NTK0 = XX * RF0 219 | if train_2nd: 220 | NTK0 = NTK0 + CK0 221 | ys = act(X@Ws)@bs 222 | step = 0 223 | while loss_fn(ys,Y)>error: 224 | step = step+1 225 | # update parameters 226 | dW = torch.t(X) @ (loss_grad(Y, ys) @ torch.t(bs) * grad(X@Ws)) / n 227 | Ws = Ws + eta_w * (dW - lda*Ws) 228 | if train_2nd: 229 | db = torch.t(X@Ws)@loss_grad(Y, ys) / n 230 | bs = bs + eta_b * (db - lda*bs) 231 | ys = act(X@Ws)@bs 232 | print("Number of steps: %d"% step) 233 | XW = act(X@Ws) 234 | y_NN = act(X_test@Ws)@bs 235 | NN_loss[i,j] = loss_fn(y_NN,Y_test) 236 | #s1= torch.linalg.eigvalsh(Ws@torch.t(Ws)) 237 | #NN_weight_diff[i,j,0] = torch.abs(s1[0]-s0[0]) 238 | NN_weight_diff[i,j,0] = torch.linalg.norm(Ws-W, ord=2) 239 | # CK model 240 | CK1 = act(X@Ws)@torch.t(act(X@Ws)) / h 241 | NN_weight_diff[i,j,1] = torch.linalg.norm(CK1-CK0, ord=2) 242 | # NTK model 243 | XW_grad = grad(X@Ws) 244 | S = XW_grad*((torch.ones(n, 1).to(device))@torch.t(bs)) 245 | RF = S@torch.t(S) 246 | NTKs = XX * RF 247 | if train_2nd: 248 | NTKs = NTKs + CK1 249 | NN_weight_diff[i,j,2] = torch.linalg.norm(NTKs-NTK0, ord=2) 250 | print("-------------------------------------------------") 251 | print("dimesion: %d; Training Loss: %f" % (n,loss_fn(ys,Y))) 252 | 253 | plt.figure(0) 254 | FONT_SIZE = 10 255 | bin = 50 256 | ylim = [0,100] 257 | plt.rc('font',size=FONT_SIZE) 258 | fig, (ax1,ax2,ax3,ax4) = plt.subplots(1,4,figsize=(22,5)) 259 | 260 | for j in range(len(lr_list)): 261 | ax1.plot(n_list,NN_loss[:,j],linewidth=1.2,label='lr=%g'% lr_list[j]) 262 | 263 | ax2.plot(n_list,NN_weight_diff[:,j,0],linewidth=1.2,label='$\|W_0-W_s\|_2$ lr=%g'% lr_list[j]) 264 | ax3.plot(n_list,NN_weight_diff[:,j,1],linewidth=1.2,label='$\|CK_0-CK_s\|_2$ lr=%g'% lr_list[j]) 265 | ax4.plot(n_list,NN_weight_diff[:,j,2],linewidth=1.2,label='$\|NTK_0-NTK_s\|_2$ lr=%g'% lr_list[j]) 266 | 267 | ax1.set_xlabel('Sample Dimension $n$') 268 | ax1.title.set_text('Test loss, $d/n=$%g, $h/n=$%g'% (gamma1,gamma2)) 269 | ax1.legend() 270 | ax2.set_xlabel('Sample Dimension $n$') 271 | ax2.title.set_text('Weight, $d/n=$%g, $h/n=$%g'% (gamma1,gamma2)) 272 | ax2.legend() 273 | 274 | ax3.set_xlabel('Sample Dimension $n$') 275 | ax3.title.set_text('CK, $d/n=$%g, $h/n=$%g'% (gamma1,gamma2)) 276 | ax3.legend() 277 | ax4.set_xlabel('Sample Dimension $n$') 278 | ax4.title.set_text('NTK, $d/n=$%g, $h/n=$%g'% (gamma1,gamma2)) 279 | ax4.legend() 280 | 281 | fig.tight_layout(pad=1.5) 282 | fig.savefig('different_lr.png') 283 | 284 | 285 | -------------------------------------------------------------------------------- /experiments/SpectralExp/try.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #SBATCH -p dlt 3 | #SBATCH -A task0_pmml 4 | #SBATCH -J try_reg 5 | #SBATCH -N 1 6 | #SBATCH -t 24:0:0 7 | #SBATCH -n 16 8 | #SBATCH --gres=gpu:8 9 | #SBATCH -o try.out.%j 10 | #SBATCH -e try.err.%j 11 | 12 | python change_reg.py --eta 0.02 --steps 4000 --lda 0.006 --gamma1 0.1 --gamma2 0.5 13 | python change_reg.py --eta 0.02 --steps 4000 --lda 0.0005 --gamma1 0.1 --gamma2 0.5 14 | python change_reg.py --eta 0.02 --steps 4000 --lda 0.01 --gamma1 0.1 --gamma2 0.5 15 | python change_reg.py --eta 0.02 --steps 4000 --lda 0.005 --gamma1 0.1 --gamma2 0.5 16 | python change_reg.py --eta 0.02 --steps 4000 --lda 0.004 --gamma1 0.1 --gamma2 0.5 17 | python change_reg.py --eta 0.02 --steps 4000 --lda 0.003 --gamma1 0.1 --gamma2 0.5 18 | python change_reg.py --eta 0.02 --steps 4000 --lda 0.002 --gamma1 0.1 --gamma2 0.5 19 | python change_reg.py --eta 0.02 --steps 5000 --lda 0.006 --gamma1 0.1 --gamma2 1.5 20 | python change_reg.py --eta 0.02 --steps 5000 --lda 0.0005 --gamma1 0.1 --gamma2 1.5 21 | python change_reg.py --eta 0.02 --steps 5000 --lda 0.01 --gamma1 0.1 --gamma2 1.5 22 | python change_reg.py --eta 0.02 --steps 5000 --lda 0.005 --gamma1 0.1 --gamma2 1.5 23 | python change_reg.py --eta 0.02 --steps 5000 --lda 0.004 --gamma1 0.1 --gamma2 1.5 24 | python change_reg.py --eta 0.02 --steps 5000 --lda 0.003 --gamma1 0.1 --gamma2 1.5 25 | python change_reg.py --eta 0.02 --steps 5000 --lda 0.002 --gamma1 0.1 --gamma2 1.5 26 | -------------------------------------------------------------------------------- /torchntk/__init__.py: -------------------------------------------------------------------------------- 1 | from . import autograd 2 | from . import explicit 3 | -------------------------------------------------------------------------------- /torchntk/__pycache__/__init__.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/torchntk/__pycache__/__init__.cpython-39.pyc -------------------------------------------------------------------------------- /torchntk/autograd/__init__.py: -------------------------------------------------------------------------------- 1 | from .autograd_experimental import vmap_ntk_loader 2 | 3 | from .autograd_misc import autograd_components_Fisher 4 | from .autograd_misc import autograd_components_Jacobian 5 | 6 | from .autograd_ntk import naive_ntk 7 | from .autograd_ntk import autograd_components_ntk 8 | from .autograd_ntk import autograd_ntk 9 | from .autograd_ntk import old_autograd_ntk 10 | 11 | -------------------------------------------------------------------------------- /torchntk/autograd/__pycache__/__init__.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/torchntk/autograd/__pycache__/__init__.cpython-39.pyc -------------------------------------------------------------------------------- /torchntk/autograd/__pycache__/autograd_experimental.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/torchntk/autograd/__pycache__/autograd_experimental.cpython-39.pyc -------------------------------------------------------------------------------- /torchntk/autograd/__pycache__/autograd_misc.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/torchntk/autograd/__pycache__/autograd_misc.cpython-39.pyc -------------------------------------------------------------------------------- /torchntk/autograd/__pycache__/autograd_ntk.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/torchntk/autograd/__pycache__/autograd_ntk.cpython-39.pyc -------------------------------------------------------------------------------- /torchntk/autograd/autograd_experimental.py: -------------------------------------------------------------------------------- 1 | #AUTHOR: ANDREW ENGEL 2 | #andrew.engel@pnnl.gov 3 | 4 | import torch 5 | print('torch.vmap is currently available only on nightly releases: torch version ',torch.__version__) 6 | 7 | def vmap_ntk_loader(model :torch.nn.Module, xloader :torch.utils.data.DataLoader, device='cuda'): #y :torch.tensor): 8 | """Calculates the Components of the NTK and places into a dictionary whose keys are the named parameters of the model. 9 | 10 | While torch.vmap function is still in development, there appears to me to be an issue with how 11 | greedy torch.vmap allocates reserved memory. Batching the calls to vmap seems to help. Just like 12 | with training a model: you can go very fast with high batch size, but it requires an absurd amount 13 | of memory. Unlike training a model, there is no regularization, so you should make batch size as high 14 | as possible 15 | 16 | We suggest clearing the cache after running this operation. 17 | 18 | parameters: 19 | model: a torch.nn.Module object that terminates to a single neuron output 20 | xloader: a torch.data.utils.DataLoader object whose first value is the input data to the model 21 | device: a string, either 'cpu' or 'cuda' where the model will be run on 22 | 23 | returns: 24 | NTKs: a dictionary whose keys are the names parameters and values are said parameters additive contribution to the NTK 25 | """ 26 | NTKs = {} 27 | 28 | params_that_need_grad = [] 29 | for param in model.parameters(): 30 | if param.requires_grad: 31 | params_that_need_grad.append(param.requires_grad) 32 | 33 | for i,z in enumerate(model.named_parameters()): 34 | if not(params_that_need_grad[i]): #if it didnt need a grad, we can skip it. 35 | continue 36 | name, param = z 37 | J_layer=[] 38 | for j,data in enumerate(xloader): 39 | inputs = data[0] 40 | inputs = inputs.to(device, non_blocking=True) 41 | basis_vectors = torch.eye(len(inputs),device=device,dtype=torch.bool) 42 | y = model(inputs)[:,0] 43 | #Seems like for retain_graph=False, you might need to do multiple forward passes. 44 | def torch_row_Jacobian(v): #y would have to be a single piece of the batch 45 | return torch.autograd.grad(y,param,v)[0].reshape(-1) 46 | J_layer.append(torch.vmap(torch_row_Jacobian)(basis_vectors).detach()) 47 | if device=='cuda': 48 | torch.cuda.empty_cache() 49 | J_layer = torch.cat(J_layer) 50 | NTKs[name] = J_layer @ J_layer.T 51 | 52 | 53 | return NTKs -------------------------------------------------------------------------------- /torchntk/autograd/autograd_misc.py: -------------------------------------------------------------------------------- 1 | #AUTHOR: ANDREW ENGEL 2 | #andrew.engel@pnnl.gov 3 | 4 | 5 | import torch 6 | 7 | def autograd_components_Fisher(model: torch.nn.Module, y :torch.tensor): 8 | 9 | fishers = {} 10 | 11 | if len(y.shape) > 1: 12 | raise ValueError('y must be 1-D, but its shape is: {}'.format(y.shape)) 13 | 14 | params_that_need_grad = [] 15 | for param in model.parameters(): 16 | if param.requires_grad: 17 | params_that_need_grad.append(param.requires_grad) 18 | #first set all gradients to not calculate, time saver 19 | param.requires_grad = False 20 | else: 21 | params_that_need_grad.append(param.requires_grad) 22 | 23 | #how do we parallelize this operation across multiple gpus or something? that be sweet. 24 | for i,z in enumerate(model.named_parameters()): 25 | if not(params_that_need_grad[i]): #if it didnt need a grad, we can skip it. 26 | continue 27 | name, param = z 28 | param.requires_grad = True #we only care about this tensors gradients in the loop 29 | this_grad=[] 30 | for i in range(len(y)): #first dimension must be the batch dimension 31 | model.zero_grad() 32 | y[i].backward(create_graph=True) 33 | this_grad.append(param.grad.detach().reshape(-1).clone()) 34 | 35 | J_layer = torch.stack(this_grad) # [N x P matrix] #this will go against our notation, but I'm not adding 36 | 37 | fishers[name] = J_layer.T @ J_layer # An extra transpose operation to my code for us to feel better 38 | 39 | param.requires_grad = False 40 | 41 | #reset the model object to be how we started this function 42 | for i,param in enumerate(model.parameters()): 43 | if params_that_need_grad[i]: 44 | param.requires_grad = True # 45 | 46 | return fishers 47 | 48 | def reconstruct_full_fisher_from_components(fisher): 49 | raise ValueError('Not Implemented Yet') 50 | #given the dictionary of fisher information matrices, we can 51 | #combine them to get the full fisher information matrix. 52 | return 53 | 54 | def autograd_components_Jacobian(model: torch.nn.Module, y :torch.tensor): 55 | 56 | Jacobians = {} 57 | 58 | if len(y.shape) > 1: 59 | raise ValueError('y must be 1-D, but its shape is: {}'.format(y.shape)) 60 | 61 | params_that_need_grad = [] 62 | for param in model.parameters(): 63 | if param.requires_grad: 64 | params_that_need_grad.append(param.requires_grad) 65 | #first set all gradients to not calculate, time saver 66 | param.requires_grad = False 67 | else: 68 | params_that_need_grad.append(param.requires_grad) 69 | 70 | #how do we parallelize this operation across multiple gpus or something? that be sweet. 71 | for i,z in enumerate(model.named_parameters()): 72 | if not(params_that_need_grad[i]): #if it didnt need a grad, we can skip it. 73 | continue 74 | name, param = z 75 | param.requires_grad = True #we only care about this tensors gradients in the loop 76 | this_grad=[] 77 | for i in range(len(y)): #first dimension must be the batch dimension 78 | model.zero_grad() 79 | y[i].backward(create_graph=True) 80 | this_grad.append(param.grad.detach().reshape(-1).clone()) 81 | 82 | J_layer = torch.stack(this_grad) # [N x P matrix] #this will go against our notation, but I'm not adding 83 | 84 | Jacobians[name] = J_layer # An extra transpose operation to my code for us to feel better 85 | 86 | param.requires_grad = False 87 | 88 | #reset the model object to be how we started this function 89 | for i,param in enumerate(model.parameters()): 90 | if params_that_need_grad[i]: 91 | param.requires_grad = True # 92 | 93 | return Jacobians -------------------------------------------------------------------------------- /torchntk/explicit/__init__.py: -------------------------------------------------------------------------------- 1 | from .explicit_ntk import explicit_ntk 2 | 3 | -------------------------------------------------------------------------------- /torchntk/explicit/__pycache__/__init__.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/torchntk/explicit/__pycache__/__init__.cpython-39.pyc -------------------------------------------------------------------------------- /torchntk/explicit/__pycache__/explicit_ntk.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnnl/torchntk/11d9ad66744a4349d6d4c4ae80a036de5b3e377a/torchntk/explicit/__pycache__/explicit_ntk.cpython-39.pyc --------------------------------------------------------------------------------