summaryrefslogtreecommitdiff
path: root/results
diff options
context:
space:
mode:
authorYurenHao0426 <Blackhao0426@gmail.com>2026-08-06 17:23:24 -0500
committerYurenHao0426 <Blackhao0426@gmail.com>2026-08-06 17:23:24 -0500
commitce1444f31ceab281e59f6aa696131fbcb1c56fc7 (patch)
tree3fdee70019fb3e1e424551034bcd21a1da846ab9 /results
parentf631d9709ff695a0015d6cae8b90b3c3802ee9a3 (diff)
results: validate beta-independent Rain bias
Diffstat (limited to 'results')
-rw-r--r--results/ep_bias/s3/clean-e3-s1988.json96
-rw-r--r--results/ep_bias/s3/constant-free2e-4-e3-s1988.json128
-rw-r--r--results/ep_bias/s3/fixed-negative-zero-bias-e3-s1988.json128
-rw-r--r--results/ep_bias/s3/innovation-free2e-4-e3-s1988.json128
-rw-r--r--results/ep_bias/s3/random-beta-free2e-4-e3-s1988.json128
-rw-r--r--results/ep_bias/s3/random-beta-zero-bias-e3-s1988.json128
-rw-r--r--results/ep_bias/s3/raw-free2e-4-e3-s1988.json128
-rw-r--r--results/ep_bias/s3_summary.json144
8 files changed, 1008 insertions, 0 deletions
diff --git a/results/ep_bias/s3/clean-e3-s1988.json b/results/ep_bias/s3/clean-e3-s1988.json
new file mode 100644
index 0000000..f9b87ea
--- /dev/null
+++ b/results/ep_bias/s3/clean-e3-s1988.json
@@ -0,0 +1,96 @@
+{
+ "schema": "rain_ep_structured_bias_screen_v1",
+ "sdil": {
+ "revision": "25f9b58f2fe478b7a4c728f404364ef8b8a92155"
+ },
+ "author": {
+ "repository": "https://github.com/rain-neuromorphics/energy-based-learning",
+ "revision": "6b253fd8a5d267535f58ab79992256ef10031ceb"
+ },
+ "protocol": {
+ "dataset": "FashionMNIST",
+ "network": "author ConvHopfieldEnergy28 32-64-10",
+ "algorithm": "equilibrium propagation",
+ "beta_policy": "fixed_positive",
+ "beta_seed": 7100,
+ "adapter": "layer",
+ "mode": "clean",
+ "bias_ratio": 0.0,
+ "predictor_rate": 0.2,
+ "neutral_cadence": 1,
+ "layer_calibration_steps": 1,
+ "layer_bias_normalization": "first_state",
+ "calibration_batches": 0,
+ "calibration_observations": 0,
+ "calibration_seconds": 4.76837158203125e-07,
+ "extra_equilibrium_phases_for_predictor": 0,
+ "predictor_neutral_source": "existing_first_EP_phase",
+ "bias_ratio_normalization": "initial_free_layer_state_rms",
+ "bias_ratio_normalization_visible_to_predictor": false,
+ "epochs": 3,
+ "train_limit": 10000,
+ "test_limit": 2000,
+ "evaluation_split": "train_holdout",
+ "data_seed": 6200,
+ "batch_size": 128,
+ "training_iterations": 12,
+ "inference_iterations": 30,
+ "seed": 1988,
+ "device": "cuda",
+ "determinism": "author_default",
+ "autodiff_used_for_learning": false
+ },
+ "hardware": {
+ "torch_version": "2.3.1+cu118",
+ "torch_cuda_version": "11.8",
+ "cuda_visible_devices": "5",
+ "device_name": "NVIDIA GeForce GTX 1080"
+ },
+ "metrics": [
+ {
+ "epoch": 1,
+ "train_accuracy": 0.5655,
+ "train_cost": 0.3262466604709625,
+ "test_accuracy": 0.711,
+ "test_cost": 0.23319924068450928,
+ "finite": true,
+ "corrector": {},
+ "wall_seconds": 11.05344820022583
+ },
+ {
+ "epoch": 2,
+ "train_accuracy": 0.7516,
+ "train_cost": 0.20616690640449523,
+ "test_accuracy": 0.7615,
+ "test_cost": 0.19976785612106324,
+ "finite": true,
+ "corrector": {},
+ "wall_seconds": 21.771517276763916
+ },
+ {
+ "epoch": 3,
+ "train_accuracy": 0.7874,
+ "train_cost": 0.18457753739356994,
+ "test_accuracy": 0.7915,
+ "test_cost": 0.19521675968170166,
+ "finite": true,
+ "corrector": {},
+ "wall_seconds": 32.58404016494751
+ }
+ ],
+ "epochs_completed": 3,
+ "beta_sign_counts": {
+ "positive": 0,
+ "negative": 0
+ },
+ "final": {
+ "epoch": 3,
+ "train_accuracy": 0.7874,
+ "train_cost": 0.18457753739356994,
+ "test_accuracy": 0.7915,
+ "test_cost": 0.19521675968170166,
+ "finite": true,
+ "corrector": {},
+ "wall_seconds": 32.58404016494751
+ }
+}
diff --git a/results/ep_bias/s3/constant-free2e-4-e3-s1988.json b/results/ep_bias/s3/constant-free2e-4-e3-s1988.json
new file mode 100644
index 0000000..fec6744
--- /dev/null
+++ b/results/ep_bias/s3/constant-free2e-4-e3-s1988.json
@@ -0,0 +1,128 @@
+{
+ "schema": "rain_ep_structured_bias_screen_v1",
+ "sdil": {
+ "revision": "25f9b58f2fe478b7a4c728f404364ef8b8a92155"
+ },
+ "author": {
+ "repository": "https://github.com/rain-neuromorphics/energy-based-learning",
+ "revision": "6b253fd8a5d267535f58ab79992256ef10031ceb"
+ },
+ "protocol": {
+ "dataset": "FashionMNIST",
+ "network": "author ConvHopfieldEnergy28 32-64-10",
+ "algorithm": "equilibrium propagation",
+ "beta_policy": "fixed_positive",
+ "beta_seed": 7100,
+ "adapter": "layer",
+ "mode": "constant",
+ "bias_ratio": 0.0002,
+ "predictor_rate": 0.2,
+ "neutral_cadence": 1,
+ "layer_calibration_steps": 1,
+ "layer_bias_normalization": "first_state",
+ "calibration_batches": 0,
+ "calibration_observations": 0,
+ "calibration_seconds": 7.152557373046875e-07,
+ "extra_equilibrium_phases_for_predictor": 0,
+ "predictor_neutral_source": "existing_first_EP_phase",
+ "bias_ratio_normalization": "initial_free_layer_state_rms",
+ "bias_ratio_normalization_visible_to_predictor": false,
+ "epochs": 3,
+ "train_limit": 10000,
+ "test_limit": 2000,
+ "evaluation_split": "train_holdout",
+ "data_seed": 6200,
+ "batch_size": 128,
+ "training_iterations": 12,
+ "inference_iterations": 30,
+ "seed": 1988,
+ "device": "cuda",
+ "determinism": "author_default",
+ "autodiff_used_for_learning": false
+ },
+ "hardware": {
+ "torch_version": "2.3.1+cu118",
+ "torch_cuda_version": "11.8",
+ "cuda_visible_devices": "5",
+ "device_name": "NVIDIA GeForce GTX 1080"
+ },
+ "metrics": [
+ {
+ "epoch": 1,
+ "train_accuracy": 0.5198,
+ "train_cost": 0.34942384424209594,
+ "test_accuracy": 0.644,
+ "test_cost": 0.2898437919616699,
+ "finite": true,
+ "corrector": {
+ "step": 78,
+ "clean_state_difference_rms": 0.0020764383364302295,
+ "bias_state_difference_rms": 6.861449949557335e-05,
+ "residual_state_difference_rms": 4.1124872197605746e-05,
+ "bias_to_clean_state_difference_rms": 0.033044323200819924,
+ "residual_to_clean_state_difference_rms": 0.019805486864737234,
+ "neutral_observations": 128
+ },
+ "wall_seconds": 11.24186635017395
+ },
+ {
+ "epoch": 2,
+ "train_accuracy": 0.6665,
+ "train_cost": 0.2653476401329041,
+ "test_accuracy": 0.678,
+ "test_cost": 0.2564698133468628,
+ "finite": true,
+ "corrector": {
+ "step": 157,
+ "clean_state_difference_rms": 0.00235124565424161,
+ "bias_state_difference_rms": 6.73391516348739e-05,
+ "residual_state_difference_rms": 4.1810892800434386e-05,
+ "bias_to_clean_state_difference_rms": 0.028639777180829714,
+ "residual_to_clean_state_difference_rms": 0.017782443414625006,
+ "neutral_observations": 128
+ },
+ "wall_seconds": 21.91631555557251
+ },
+ {
+ "epoch": 3,
+ "train_accuracy": 0.685,
+ "train_cost": 0.25095000991821287,
+ "test_accuracy": 0.671,
+ "test_cost": 0.2543458433151245,
+ "finite": true,
+ "corrector": {
+ "step": 236,
+ "clean_state_difference_rms": 0.002086502742845201,
+ "bias_state_difference_rms": 6.859923823062401e-05,
+ "residual_state_difference_rms": 4.179419675284569e-05,
+ "bias_to_clean_state_difference_rms": 0.03287761708718417,
+ "residual_to_clean_state_difference_rms": 0.02003074134273804,
+ "neutral_observations": 128
+ },
+ "wall_seconds": 32.619558334350586
+ }
+ ],
+ "epochs_completed": 3,
+ "beta_sign_counts": {
+ "positive": 0,
+ "negative": 0
+ },
+ "final": {
+ "epoch": 3,
+ "train_accuracy": 0.685,
+ "train_cost": 0.25095000991821287,
+ "test_accuracy": 0.671,
+ "test_cost": 0.2543458433151245,
+ "finite": true,
+ "corrector": {
+ "step": 236,
+ "clean_state_difference_rms": 0.002086502742845201,
+ "bias_state_difference_rms": 6.859923823062401e-05,
+ "residual_state_difference_rms": 4.179419675284569e-05,
+ "bias_to_clean_state_difference_rms": 0.03287761708718417,
+ "residual_to_clean_state_difference_rms": 0.02003074134273804,
+ "neutral_observations": 128
+ },
+ "wall_seconds": 32.619558334350586
+ }
+}
diff --git a/results/ep_bias/s3/fixed-negative-zero-bias-e3-s1988.json b/results/ep_bias/s3/fixed-negative-zero-bias-e3-s1988.json
new file mode 100644
index 0000000..edab5c7
--- /dev/null
+++ b/results/ep_bias/s3/fixed-negative-zero-bias-e3-s1988.json
@@ -0,0 +1,128 @@
+{
+ "schema": "rain_ep_structured_bias_screen_v1",
+ "sdil": {
+ "revision": "25f9b58f2fe478b7a4c728f404364ef8b8a92155"
+ },
+ "author": {
+ "repository": "https://github.com/rain-neuromorphics/energy-based-learning",
+ "revision": "6b253fd8a5d267535f58ab79992256ef10031ceb"
+ },
+ "protocol": {
+ "dataset": "FashionMNIST",
+ "network": "author ConvHopfieldEnergy28 32-64-10",
+ "algorithm": "equilibrium propagation",
+ "beta_policy": "fixed_negative",
+ "beta_seed": 7100,
+ "adapter": "layer",
+ "mode": "raw",
+ "bias_ratio": 0.0,
+ "predictor_rate": 0.1,
+ "neutral_cadence": 1,
+ "layer_calibration_steps": 1,
+ "layer_bias_normalization": "first_state",
+ "calibration_batches": 0,
+ "calibration_observations": 0,
+ "calibration_seconds": 4.76837158203125e-07,
+ "extra_equilibrium_phases_for_predictor": 0,
+ "predictor_neutral_source": "existing_first_EP_phase",
+ "bias_ratio_normalization": "initial_free_layer_state_rms",
+ "bias_ratio_normalization_visible_to_predictor": false,
+ "epochs": 3,
+ "train_limit": 10000,
+ "test_limit": 2000,
+ "evaluation_split": "train_holdout",
+ "data_seed": 6200,
+ "batch_size": 128,
+ "training_iterations": 12,
+ "inference_iterations": 30,
+ "seed": 1988,
+ "device": "cuda",
+ "determinism": "author_default",
+ "autodiff_used_for_learning": false
+ },
+ "hardware": {
+ "torch_version": "2.3.1+cu118",
+ "torch_cuda_version": "11.8",
+ "cuda_visible_devices": "5",
+ "device_name": "NVIDIA GeForce GTX 1080"
+ },
+ "metrics": [
+ {
+ "epoch": 1,
+ "train_accuracy": 0.0987,
+ "train_cost": 0.5252441967964172,
+ "test_accuracy": 0.1025,
+ "test_cost": 0.4856400566101074,
+ "finite": true,
+ "corrector": {
+ "step": 78,
+ "clean_state_difference_rms": 0.004262439753198408,
+ "bias_state_difference_rms": 0.0,
+ "residual_state_difference_rms": 0.0,
+ "bias_to_clean_state_difference_rms": 0.0,
+ "residual_to_clean_state_difference_rms": 0.0,
+ "neutral_observations": 0
+ },
+ "wall_seconds": 11.11732792854309
+ },
+ {
+ "epoch": 2,
+ "train_accuracy": 0.0993,
+ "train_cost": 0.471874783706665,
+ "test_accuracy": 0.1,
+ "test_cost": 0.5200363788604736,
+ "finite": true,
+ "corrector": {
+ "step": 157,
+ "clean_state_difference_rms": 0.0041520212772640725,
+ "bias_state_difference_rms": 0.0,
+ "residual_state_difference_rms": 0.0,
+ "bias_to_clean_state_difference_rms": 0.0,
+ "residual_to_clean_state_difference_rms": 0.0,
+ "neutral_observations": 0
+ },
+ "wall_seconds": 21.764130115509033
+ },
+ {
+ "epoch": 3,
+ "train_accuracy": 0.1016,
+ "train_cost": 0.47106613149642945,
+ "test_accuracy": 0.099,
+ "test_cost": 0.47838667488098147,
+ "finite": true,
+ "corrector": {
+ "step": 236,
+ "clean_state_difference_rms": 0.004298488890043378,
+ "bias_state_difference_rms": 0.0,
+ "residual_state_difference_rms": 0.0,
+ "bias_to_clean_state_difference_rms": 0.0,
+ "residual_to_clean_state_difference_rms": 0.0,
+ "neutral_observations": 0
+ },
+ "wall_seconds": 32.60152792930603
+ }
+ ],
+ "epochs_completed": 3,
+ "beta_sign_counts": {
+ "positive": 0,
+ "negative": 237
+ },
+ "final": {
+ "epoch": 3,
+ "train_accuracy": 0.1016,
+ "train_cost": 0.47106613149642945,
+ "test_accuracy": 0.099,
+ "test_cost": 0.47838667488098147,
+ "finite": true,
+ "corrector": {
+ "step": 236,
+ "clean_state_difference_rms": 0.004298488890043378,
+ "bias_state_difference_rms": 0.0,
+ "residual_state_difference_rms": 0.0,
+ "bias_to_clean_state_difference_rms": 0.0,
+ "residual_to_clean_state_difference_rms": 0.0,
+ "neutral_observations": 0
+ },
+ "wall_seconds": 32.60152792930603
+ }
+}
diff --git a/results/ep_bias/s3/innovation-free2e-4-e3-s1988.json b/results/ep_bias/s3/innovation-free2e-4-e3-s1988.json
new file mode 100644
index 0000000..3079683
--- /dev/null
+++ b/results/ep_bias/s3/innovation-free2e-4-e3-s1988.json
@@ -0,0 +1,128 @@
+{
+ "schema": "rain_ep_structured_bias_screen_v1",
+ "sdil": {
+ "revision": "25f9b58f2fe478b7a4c728f404364ef8b8a92155"
+ },
+ "author": {
+ "repository": "https://github.com/rain-neuromorphics/energy-based-learning",
+ "revision": "6b253fd8a5d267535f58ab79992256ef10031ceb"
+ },
+ "protocol": {
+ "dataset": "FashionMNIST",
+ "network": "author ConvHopfieldEnergy28 32-64-10",
+ "algorithm": "equilibrium propagation",
+ "beta_policy": "fixed_positive",
+ "beta_seed": 7100,
+ "adapter": "layer",
+ "mode": "innovation",
+ "bias_ratio": 0.0002,
+ "predictor_rate": 0.2,
+ "neutral_cadence": 1,
+ "layer_calibration_steps": 1,
+ "layer_bias_normalization": "first_state",
+ "calibration_batches": 0,
+ "calibration_observations": 0,
+ "calibration_seconds": 2.384185791015625e-07,
+ "extra_equilibrium_phases_for_predictor": 0,
+ "predictor_neutral_source": "existing_first_EP_phase",
+ "bias_ratio_normalization": "initial_free_layer_state_rms",
+ "bias_ratio_normalization_visible_to_predictor": false,
+ "epochs": 3,
+ "train_limit": 10000,
+ "test_limit": 2000,
+ "evaluation_split": "train_holdout",
+ "data_seed": 6200,
+ "batch_size": 128,
+ "training_iterations": 12,
+ "inference_iterations": 30,
+ "seed": 1988,
+ "device": "cuda",
+ "determinism": "author_default",
+ "autodiff_used_for_learning": false
+ },
+ "hardware": {
+ "torch_version": "2.3.1+cu118",
+ "torch_cuda_version": "11.8",
+ "cuda_visible_devices": "7",
+ "device_name": "NVIDIA GeForce GTX 1080"
+ },
+ "metrics": [
+ {
+ "epoch": 1,
+ "train_accuracy": 0.5627,
+ "train_cost": 0.3277251761674881,
+ "test_accuracy": 0.7115,
+ "test_cost": 0.2376751184463501,
+ "finite": true,
+ "corrector": {
+ "step": 78,
+ "clean_state_difference_rms": 0.001959044826177622,
+ "bias_state_difference_rms": 5.9736316088780474e-05,
+ "residual_state_difference_rms": 6.459131498967555e-06,
+ "bias_to_clean_state_difference_rms": 0.030492572344725064,
+ "residual_to_clean_state_difference_rms": 0.0032970820333755447,
+ "neutral_observations": 128
+ },
+ "wall_seconds": 10.959503412246704
+ },
+ {
+ "epoch": 2,
+ "train_accuracy": 0.7526,
+ "train_cost": 0.209361084318161,
+ "test_accuracy": 0.757,
+ "test_cost": 0.20456177616119384,
+ "finite": true,
+ "corrector": {
+ "step": 157,
+ "clean_state_difference_rms": 0.0023768556991528105,
+ "bias_state_difference_rms": 6.0839851204849585e-05,
+ "residual_state_difference_rms": 6.838803277078925e-06,
+ "bias_to_clean_state_difference_rms": 0.025596779487511552,
+ "residual_to_clean_state_difference_rms": 0.0028772479875477926,
+ "neutral_observations": 128
+ },
+ "wall_seconds": 21.46092987060547
+ },
+ {
+ "epoch": 3,
+ "train_accuracy": 0.7888,
+ "train_cost": 0.1878269561290741,
+ "test_accuracy": 0.7775,
+ "test_cost": 0.1981061978340149,
+ "finite": true,
+ "corrector": {
+ "step": 236,
+ "clean_state_difference_rms": 0.0029137031845211728,
+ "bias_state_difference_rms": 6.27170698976096e-05,
+ "residual_state_difference_rms": 7.014578116605139e-06,
+ "bias_to_clean_state_difference_rms": 0.021524865755300427,
+ "residual_to_clean_state_difference_rms": 0.0024074442976448505,
+ "neutral_observations": 128
+ },
+ "wall_seconds": 32.3717303276062
+ }
+ ],
+ "epochs_completed": 3,
+ "beta_sign_counts": {
+ "positive": 0,
+ "negative": 0
+ },
+ "final": {
+ "epoch": 3,
+ "train_accuracy": 0.7888,
+ "train_cost": 0.1878269561290741,
+ "test_accuracy": 0.7775,
+ "test_cost": 0.1981061978340149,
+ "finite": true,
+ "corrector": {
+ "step": 236,
+ "clean_state_difference_rms": 0.0029137031845211728,
+ "bias_state_difference_rms": 6.27170698976096e-05,
+ "residual_state_difference_rms": 7.014578116605139e-06,
+ "bias_to_clean_state_difference_rms": 0.021524865755300427,
+ "residual_to_clean_state_difference_rms": 0.0024074442976448505,
+ "neutral_observations": 128
+ },
+ "wall_seconds": 32.3717303276062
+ }
+}
diff --git a/results/ep_bias/s3/random-beta-free2e-4-e3-s1988.json b/results/ep_bias/s3/random-beta-free2e-4-e3-s1988.json
new file mode 100644
index 0000000..514a13a
--- /dev/null
+++ b/results/ep_bias/s3/random-beta-free2e-4-e3-s1988.json
@@ -0,0 +1,128 @@
+{
+ "schema": "rain_ep_structured_bias_screen_v1",
+ "sdil": {
+ "revision": "25f9b58f2fe478b7a4c728f404364ef8b8a92155"
+ },
+ "author": {
+ "repository": "https://github.com/rain-neuromorphics/energy-based-learning",
+ "revision": "6b253fd8a5d267535f58ab79992256ef10031ceb"
+ },
+ "protocol": {
+ "dataset": "FashionMNIST",
+ "network": "author ConvHopfieldEnergy28 32-64-10",
+ "algorithm": "equilibrium propagation",
+ "beta_policy": "random_sign",
+ "beta_seed": 7100,
+ "adapter": "layer",
+ "mode": "raw",
+ "bias_ratio": 0.0002,
+ "predictor_rate": 0.2,
+ "neutral_cadence": 1,
+ "layer_calibration_steps": 1,
+ "layer_bias_normalization": "first_state",
+ "calibration_batches": 0,
+ "calibration_observations": 0,
+ "calibration_seconds": 7.152557373046875e-07,
+ "extra_equilibrium_phases_for_predictor": 0,
+ "predictor_neutral_source": "existing_first_EP_phase",
+ "bias_ratio_normalization": "initial_free_layer_state_rms",
+ "bias_ratio_normalization_visible_to_predictor": false,
+ "epochs": 3,
+ "train_limit": 10000,
+ "test_limit": 2000,
+ "evaluation_split": "train_holdout",
+ "data_seed": 6200,
+ "batch_size": 128,
+ "training_iterations": 12,
+ "inference_iterations": 30,
+ "seed": 1988,
+ "device": "cuda",
+ "determinism": "author_default",
+ "autodiff_used_for_learning": false
+ },
+ "hardware": {
+ "torch_version": "2.3.1+cu118",
+ "torch_cuda_version": "11.8",
+ "cuda_visible_devices": "7",
+ "device_name": "NVIDIA GeForce GTX 1080"
+ },
+ "metrics": [
+ {
+ "epoch": 1,
+ "train_accuracy": 0.0977,
+ "train_cost": 0.5187413223743439,
+ "test_accuracy": 0.099,
+ "test_cost": 0.4587230587005615,
+ "finite": true,
+ "corrector": {
+ "step": 78,
+ "clean_state_difference_rms": 0.004350509578510408,
+ "bias_state_difference_rms": 6.768507197212281e-05,
+ "residual_state_difference_rms": 6.768507180001288e-05,
+ "bias_to_clean_state_difference_rms": 0.015557964130560042,
+ "residual_to_clean_state_difference_rms": 0.015557964090999174,
+ "neutral_observations": 0
+ },
+ "wall_seconds": 10.929879903793335
+ },
+ {
+ "epoch": 2,
+ "train_accuracy": 0.0995,
+ "train_cost": 0.471443905878067,
+ "test_accuracy": 0.1,
+ "test_cost": 0.4993226871490479,
+ "finite": true,
+ "corrector": {
+ "step": 157,
+ "clean_state_difference_rms": 0.004240214422937028,
+ "bias_state_difference_rms": 6.96857712372795e-05,
+ "residual_state_difference_rms": 6.968577113788195e-05,
+ "bias_to_clean_state_difference_rms": 0.01643449228895621,
+ "residual_to_clean_state_difference_rms": 0.016434492265514578,
+ "neutral_observations": 0
+ },
+ "wall_seconds": 21.44823122024536
+ },
+ {
+ "epoch": 3,
+ "train_accuracy": 0.1019,
+ "train_cost": 0.4906962996959686,
+ "test_accuracy": 0.099,
+ "test_cost": 0.5079852809906006,
+ "finite": true,
+ "corrector": {
+ "step": 236,
+ "clean_state_difference_rms": 0.004193004141338366,
+ "bias_state_difference_rms": 6.120117185015426e-05,
+ "residual_state_difference_rms": 6.120117105019515e-05,
+ "bias_to_clean_state_difference_rms": 0.014596019891031983,
+ "residual_to_clean_state_difference_rms": 0.014596019700247742,
+ "neutral_observations": 0
+ },
+ "wall_seconds": 31.93136191368103
+ }
+ ],
+ "epochs_completed": 3,
+ "beta_sign_counts": {
+ "positive": 115,
+ "negative": 122
+ },
+ "final": {
+ "epoch": 3,
+ "train_accuracy": 0.1019,
+ "train_cost": 0.4906962996959686,
+ "test_accuracy": 0.099,
+ "test_cost": 0.5079852809906006,
+ "finite": true,
+ "corrector": {
+ "step": 236,
+ "clean_state_difference_rms": 0.004193004141338366,
+ "bias_state_difference_rms": 6.120117185015426e-05,
+ "residual_state_difference_rms": 6.120117105019515e-05,
+ "bias_to_clean_state_difference_rms": 0.014596019891031983,
+ "residual_to_clean_state_difference_rms": 0.014596019700247742,
+ "neutral_observations": 0
+ },
+ "wall_seconds": 31.93136191368103
+ }
+}
diff --git a/results/ep_bias/s3/random-beta-zero-bias-e3-s1988.json b/results/ep_bias/s3/random-beta-zero-bias-e3-s1988.json
new file mode 100644
index 0000000..f848e9e
--- /dev/null
+++ b/results/ep_bias/s3/random-beta-zero-bias-e3-s1988.json
@@ -0,0 +1,128 @@
+{
+ "schema": "rain_ep_structured_bias_screen_v1",
+ "sdil": {
+ "revision": "25f9b58f2fe478b7a4c728f404364ef8b8a92155"
+ },
+ "author": {
+ "repository": "https://github.com/rain-neuromorphics/energy-based-learning",
+ "revision": "6b253fd8a5d267535f58ab79992256ef10031ceb"
+ },
+ "protocol": {
+ "dataset": "FashionMNIST",
+ "network": "author ConvHopfieldEnergy28 32-64-10",
+ "algorithm": "equilibrium propagation",
+ "beta_policy": "random_sign",
+ "beta_seed": 7100,
+ "adapter": "layer",
+ "mode": "raw",
+ "bias_ratio": 0.0,
+ "predictor_rate": 0.2,
+ "neutral_cadence": 1,
+ "layer_calibration_steps": 1,
+ "layer_bias_normalization": "first_state",
+ "calibration_batches": 0,
+ "calibration_observations": 0,
+ "calibration_seconds": 7.152557373046875e-07,
+ "extra_equilibrium_phases_for_predictor": 0,
+ "predictor_neutral_source": "existing_first_EP_phase",
+ "bias_ratio_normalization": "initial_free_layer_state_rms",
+ "bias_ratio_normalization_visible_to_predictor": false,
+ "epochs": 3,
+ "train_limit": 10000,
+ "test_limit": 2000,
+ "evaluation_split": "train_holdout",
+ "data_seed": 6200,
+ "batch_size": 128,
+ "training_iterations": 12,
+ "inference_iterations": 30,
+ "seed": 1988,
+ "device": "cuda",
+ "determinism": "author_default",
+ "autodiff_used_for_learning": false
+ },
+ "hardware": {
+ "torch_version": "2.3.1+cu118",
+ "torch_cuda_version": "11.8",
+ "cuda_visible_devices": "7",
+ "device_name": "NVIDIA GeForce GTX 1080"
+ },
+ "metrics": [
+ {
+ "epoch": 1,
+ "train_accuracy": 0.0977,
+ "train_cost": 0.5184064460754394,
+ "test_accuracy": 0.099,
+ "test_cost": 0.45871949768066406,
+ "finite": true,
+ "corrector": {
+ "step": 78,
+ "clean_state_difference_rms": 0.004350076859747713,
+ "bias_state_difference_rms": 0.0,
+ "residual_state_difference_rms": 0.0,
+ "bias_to_clean_state_difference_rms": 0.0,
+ "residual_to_clean_state_difference_rms": 0.0,
+ "neutral_observations": 0
+ },
+ "wall_seconds": 11.085044145584106
+ },
+ {
+ "epoch": 2,
+ "train_accuracy": 0.0995,
+ "train_cost": 0.4713497564315796,
+ "test_accuracy": 0.1,
+ "test_cost": 0.4994611148834229,
+ "finite": true,
+ "corrector": {
+ "step": 157,
+ "clean_state_difference_rms": 0.004238537318288757,
+ "bias_state_difference_rms": 0.0,
+ "residual_state_difference_rms": 0.0,
+ "bias_to_clean_state_difference_rms": 0.0,
+ "residual_to_clean_state_difference_rms": 0.0,
+ "neutral_observations": 0
+ },
+ "wall_seconds": 21.73082685470581
+ },
+ {
+ "epoch": 3,
+ "train_accuracy": 0.1019,
+ "train_cost": 0.4904862898826599,
+ "test_accuracy": 0.099,
+ "test_cost": 0.5077337665557862,
+ "finite": true,
+ "corrector": {
+ "step": 236,
+ "clean_state_difference_rms": 0.00419313641524673,
+ "bias_state_difference_rms": 0.0,
+ "residual_state_difference_rms": 0.0,
+ "bias_to_clean_state_difference_rms": 0.0,
+ "residual_to_clean_state_difference_rms": 0.0,
+ "neutral_observations": 0
+ },
+ "wall_seconds": 32.36788892745972
+ }
+ ],
+ "epochs_completed": 3,
+ "beta_sign_counts": {
+ "positive": 115,
+ "negative": 122
+ },
+ "final": {
+ "epoch": 3,
+ "train_accuracy": 0.1019,
+ "train_cost": 0.4904862898826599,
+ "test_accuracy": 0.099,
+ "test_cost": 0.5077337665557862,
+ "finite": true,
+ "corrector": {
+ "step": 236,
+ "clean_state_difference_rms": 0.00419313641524673,
+ "bias_state_difference_rms": 0.0,
+ "residual_state_difference_rms": 0.0,
+ "bias_to_clean_state_difference_rms": 0.0,
+ "residual_to_clean_state_difference_rms": 0.0,
+ "neutral_observations": 0
+ },
+ "wall_seconds": 32.36788892745972
+ }
+}
diff --git a/results/ep_bias/s3/raw-free2e-4-e3-s1988.json b/results/ep_bias/s3/raw-free2e-4-e3-s1988.json
new file mode 100644
index 0000000..0d1c46c
--- /dev/null
+++ b/results/ep_bias/s3/raw-free2e-4-e3-s1988.json
@@ -0,0 +1,128 @@
+{
+ "schema": "rain_ep_structured_bias_screen_v1",
+ "sdil": {
+ "revision": "25f9b58f2fe478b7a4c728f404364ef8b8a92155"
+ },
+ "author": {
+ "repository": "https://github.com/rain-neuromorphics/energy-based-learning",
+ "revision": "6b253fd8a5d267535f58ab79992256ef10031ceb"
+ },
+ "protocol": {
+ "dataset": "FashionMNIST",
+ "network": "author ConvHopfieldEnergy28 32-64-10",
+ "algorithm": "equilibrium propagation",
+ "beta_policy": "fixed_positive",
+ "beta_seed": 7100,
+ "adapter": "layer",
+ "mode": "raw",
+ "bias_ratio": 0.0002,
+ "predictor_rate": 0.2,
+ "neutral_cadence": 1,
+ "layer_calibration_steps": 1,
+ "layer_bias_normalization": "first_state",
+ "calibration_batches": 0,
+ "calibration_observations": 0,
+ "calibration_seconds": 7.152557373046875e-07,
+ "extra_equilibrium_phases_for_predictor": 0,
+ "predictor_neutral_source": "existing_first_EP_phase",
+ "bias_ratio_normalization": "initial_free_layer_state_rms",
+ "bias_ratio_normalization_visible_to_predictor": false,
+ "epochs": 3,
+ "train_limit": 10000,
+ "test_limit": 2000,
+ "evaluation_split": "train_holdout",
+ "data_seed": 6200,
+ "batch_size": 128,
+ "training_iterations": 12,
+ "inference_iterations": 30,
+ "seed": 1988,
+ "device": "cuda",
+ "determinism": "author_default",
+ "autodiff_used_for_learning": false
+ },
+ "hardware": {
+ "torch_version": "2.3.1+cu118",
+ "torch_cuda_version": "11.8",
+ "cuda_visible_devices": "5",
+ "device_name": "NVIDIA GeForce GTX 1080"
+ },
+ "metrics": [
+ {
+ "epoch": 1,
+ "train_accuracy": 0.525,
+ "train_cost": 0.34950863118171693,
+ "test_accuracy": 0.631,
+ "test_cost": 0.28764210891723635,
+ "finite": true,
+ "corrector": {
+ "step": 78,
+ "clean_state_difference_rms": 0.002066331490351331,
+ "bias_state_difference_rms": 7.00510661145787e-05,
+ "residual_state_difference_rms": 7.005106596176534e-05,
+ "bias_to_clean_state_difference_rms": 0.03390117531561607,
+ "residual_to_clean_state_difference_rms": 0.033901175241662126,
+ "neutral_observations": 0
+ },
+ "wall_seconds": 11.179229021072388
+ },
+ {
+ "epoch": 2,
+ "train_accuracy": 0.6508,
+ "train_cost": 0.2719239552974701,
+ "test_accuracy": 0.661,
+ "test_cost": 0.2758150339126587,
+ "finite": true,
+ "corrector": {
+ "step": 157,
+ "clean_state_difference_rms": 0.002181261131245231,
+ "bias_state_difference_rms": 7.104445038140187e-05,
+ "residual_state_difference_rms": 7.104445009334361e-05,
+ "bias_to_clean_state_difference_rms": 0.03257035545342719,
+ "residual_to_clean_state_difference_rms": 0.03257035532136677,
+ "neutral_observations": 0
+ },
+ "wall_seconds": 21.938637256622314
+ },
+ {
+ "epoch": 3,
+ "train_accuracy": 0.671,
+ "train_cost": 0.26575620069503786,
+ "test_accuracy": 0.6275,
+ "test_cost": 0.29603462982177736,
+ "finite": true,
+ "corrector": {
+ "step": 236,
+ "clean_state_difference_rms": 0.002182388186612404,
+ "bias_state_difference_rms": 7.06939035519467e-05,
+ "residual_state_difference_rms": 7.069390339161565e-05,
+ "bias_to_clean_state_difference_rms": 0.03239290974246007,
+ "residual_to_clean_state_difference_rms": 0.0323929096689942,
+ "neutral_observations": 0
+ },
+ "wall_seconds": 32.71566128730774
+ }
+ ],
+ "epochs_completed": 3,
+ "beta_sign_counts": {
+ "positive": 0,
+ "negative": 0
+ },
+ "final": {
+ "epoch": 3,
+ "train_accuracy": 0.671,
+ "train_cost": 0.26575620069503786,
+ "test_accuracy": 0.6275,
+ "test_cost": 0.29603462982177736,
+ "finite": true,
+ "corrector": {
+ "step": 236,
+ "clean_state_difference_rms": 0.002182388186612404,
+ "bias_state_difference_rms": 7.06939035519467e-05,
+ "residual_state_difference_rms": 7.069390339161565e-05,
+ "bias_to_clean_state_difference_rms": 0.03239290974246007,
+ "residual_to_clean_state_difference_rms": 0.0323929096689942,
+ "neutral_observations": 0
+ },
+ "wall_seconds": 32.71566128730774
+ }
+}
diff --git a/results/ep_bias/s3_summary.json b/results/ep_bias/s3_summary.json
new file mode 100644
index 0000000..47ee830
--- /dev/null
+++ b/results/ep_bias/s3_summary.json
@@ -0,0 +1,144 @@
+{
+ "bias_model": {
+ "depends_on_beta_sign": false,
+ "depends_on_clean_task_difference": false,
+ "normalization": "initial_free_layer_state_rms",
+ "ratio": 0.0002
+ },
+ "effects": {
+ "clean_minus_innovation_accuracy_points": 1.4000000000000012,
+ "constant_final_residual_to_clean_state_difference_rms": 0.02003074134273804,
+ "innovation_final_residual_to_clean_state_difference_rms": 0.0024074442976448505,
+ "innovation_minus_constant_accuracy_points": 10.649999999999993,
+ "innovation_minus_raw_accuracy_points": 15.000000000000002,
+ "innovation_wall_over_clean": 0.9934842384103828
+ },
+ "random_beta_boundary": {
+ "fixed_negative_fails_with_zero_bias": true,
+ "interpretation": "Negative-beta relaxation is not a valid drop-in baseline under the pinned author's positive-EP hyperparameters. Random-sign beta requires separate stability work before comparison; this screen is not an SDIL win over a functioning random-beta method.",
+ "random_sign_fails_with_zero_bias": true
+ },
+ "rows": {
+ "clean": {
+ "beta_sign_counts": {
+ "negative": 0,
+ "positive": 0
+ },
+ "final_corrector": {},
+ "final_validation_accuracy": 0.7915,
+ "finite": true,
+ "wall_seconds": 32.58404016494751
+ },
+ "constant": {
+ "beta_sign_counts": {
+ "negative": 0,
+ "positive": 0
+ },
+ "final_corrector": {
+ "bias_state_difference_rms": 6.859923823062401e-05,
+ "bias_to_clean_state_difference_rms": 0.03287761708718417,
+ "clean_state_difference_rms": 0.002086502742845201,
+ "neutral_observations": 128,
+ "residual_state_difference_rms": 4.179419675284569e-05,
+ "residual_to_clean_state_difference_rms": 0.02003074134273804,
+ "step": 236
+ },
+ "final_validation_accuracy": 0.671,
+ "finite": true,
+ "wall_seconds": 32.619558334350586
+ },
+ "fixed_negative_zero_bias": {
+ "beta_sign_counts": {
+ "negative": 237,
+ "positive": 0
+ },
+ "final_corrector": {
+ "bias_state_difference_rms": 0.0,
+ "bias_to_clean_state_difference_rms": 0.0,
+ "clean_state_difference_rms": 0.004298488890043378,
+ "neutral_observations": 0,
+ "residual_state_difference_rms": 0.0,
+ "residual_to_clean_state_difference_rms": 0.0,
+ "step": 236
+ },
+ "final_validation_accuracy": 0.099,
+ "finite": true,
+ "wall_seconds": 32.60152792930603
+ },
+ "innovation": {
+ "beta_sign_counts": {
+ "negative": 0,
+ "positive": 0
+ },
+ "final_corrector": {
+ "bias_state_difference_rms": 6.27170698976096e-05,
+ "bias_to_clean_state_difference_rms": 0.021524865755300427,
+ "clean_state_difference_rms": 0.0029137031845211728,
+ "neutral_observations": 128,
+ "residual_state_difference_rms": 7.014578116605139e-06,
+ "residual_to_clean_state_difference_rms": 0.0024074442976448505,
+ "step": 236
+ },
+ "final_validation_accuracy": 0.7775,
+ "finite": true,
+ "wall_seconds": 32.3717303276062
+ },
+ "random_beta": {
+ "beta_sign_counts": {
+ "negative": 122,
+ "positive": 115
+ },
+ "final_corrector": {
+ "bias_state_difference_rms": 6.120117185015426e-05,
+ "bias_to_clean_state_difference_rms": 0.014596019891031983,
+ "clean_state_difference_rms": 0.004193004141338366,
+ "neutral_observations": 0,
+ "residual_state_difference_rms": 6.120117105019515e-05,
+ "residual_to_clean_state_difference_rms": 0.014596019700247742,
+ "step": 236
+ },
+ "final_validation_accuracy": 0.099,
+ "finite": true,
+ "wall_seconds": 31.93136191368103
+ },
+ "random_beta_zero_bias": {
+ "beta_sign_counts": {
+ "negative": 122,
+ "positive": 115
+ },
+ "final_corrector": {
+ "bias_state_difference_rms": 0.0,
+ "bias_to_clean_state_difference_rms": 0.0,
+ "clean_state_difference_rms": 0.00419313641524673,
+ "neutral_observations": 0,
+ "residual_state_difference_rms": 0.0,
+ "residual_to_clean_state_difference_rms": 0.0,
+ "step": 236
+ },
+ "final_validation_accuracy": 0.099,
+ "finite": true,
+ "wall_seconds": 32.36788892745972
+ },
+ "raw": {
+ "beta_sign_counts": {
+ "negative": 0,
+ "positive": 0
+ },
+ "final_corrector": {
+ "bias_state_difference_rms": 7.06939035519467e-05,
+ "bias_to_clean_state_difference_rms": 0.03239290974246007,
+ "clean_state_difference_rms": 0.002182388186612404,
+ "neutral_observations": 0,
+ "residual_state_difference_rms": 7.069390339161565e-05,
+ "residual_to_clean_state_difference_rms": 0.0323929096689942,
+ "step": 236
+ },
+ "final_validation_accuracy": 0.6275,
+ "finite": true,
+ "wall_seconds": 32.71566128730774
+ }
+ },
+ "stage": "rain_ep_beta_independent_hardware_bias_s3",
+ "status": "positive_single_seed_development_negative_beta_unavailable",
+ "test_policy": "new development train holdout data seed 6200"
+}