summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnonymous Authors <anonymous@example.com>2026-07-24 11:07:23 -0500
committerAnonymous Authors <anonymous@example.com>2026-07-24 11:07:23 -0500
commite01b690cb0b5f447c95598e8f2c1abaa17c17363 (patch)
treeaaff46750feca7dab854141dcb4eab2080279a56
Add anonymous KAFT MVP reproduction
-rw-r--r--.gitignore9
-rw-r--r--README.md100
-rw-r--r--THIRD_PARTY.md15
-rw-r--r--artifacts/mvp_results.json5089
-rw-r--r--artifacts/mvp_summary.csv3
-rw-r--r--artifacts/training_curves.pngbin0 -> 120027 bytes
-rw-r--r--kaft_mvp/__init__.py5
-rw-r--r--kaft_mvp/data.py100
-rw-r--r--kaft_mvp/experiment.py262
-rw-r--r--kaft_mvp/trainers.py380
-rw-r--r--pyproject.toml21
-rw-r--r--reproduce_mvp.ipynb346
-rw-r--r--requirements.txt8
-rw-r--r--run_mvp.py53
14 files changed, 6391 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..6c4ce57
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,9 @@
+.venv/
+data/
+__pycache__/
+*.py[cod]
+.pytest_cache/
+.ipynb_checkpoints/
+build/
+dist/
+*.egg-info/
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..422ebed
--- /dev/null
+++ b/README.md
@@ -0,0 +1,100 @@
+# Anonymous KAFT MVP reproduction
+
+This repository is a minimal, self-contained reproduction of two core
+observations for deep message-passing GNNs:
+
+1. a plain deep GCN can lose usable backward transport even when a
+ standardized hidden-state probe remains informative; and
+2. Kronecker-Aligned Feedback Training (KAFT) improves training while leaving
+ the forward GCN unchanged.
+
+The package intentionally contains only the code needed for this MVP. It does
+not include manuscript files, review material, cached datasets, private paths,
+or repository history.
+
+## One-click notebook
+
+Open `reproduce_mvp.ipynb` and choose **Run All**. The first cell installs the
+local package, the experiment downloads Cora automatically, and the remaining
+cells train BP and KAFT, run the gradient diagnostic, display the result
+tables, and save machine-readable artifacts.
+
+The same notebook can be executed non-interactively:
+
+```bash
+python -m pip install -r requirements.txt
+jupyter nbconvert \
+ --to notebook \
+ --execute reproduce_mvp.ipynb \
+ --output reproduce_mvp.executed.ipynb \
+ --ExecutePreprocessor.timeout=1200
+```
+
+## Command-line reproduction
+
+```bash
+python -m pip install -e .
+python run_mvp.py
+```
+
+The default CPU protocol uses:
+
+- Cora with the public Planetoid split;
+- an identical six-layer, width-64, bias-free GCN forward model for BP and
+ KAFT;
+- seeds 0, 1, and 2;
+- Adam, learning rate 0.01, weight decay \(5\times10^{-4}\), 200 epochs;
+- KAFT diffusion \(\alpha=0.5\), 10 fixed linear propagation steps;
+- hop cap \(K=3\), 64 Gaussian probes, and alignment every 10 steps;
+- a separate ten-layer, 100-epoch BP diagnostic.
+
+KAFT changes only the hidden-layer backward rule. Its graph-side feedback is
+\(P_\ell(\hat A)D(\hat A)\), and its feature-side matrix is aligned to the
+chain-normalized suffix-weight probe target. The output layer uses the true
+cross-entropy error.
+
+## Outputs
+
+Running either entry point writes:
+
+```text
+artifacts/
+├── mvp_results.json
+├── mvp_summary.csv
+└── training_curves.png
+```
+
+The JSON file contains the full configuration, every seed-level result,
+training histories, and the ten-layer gradient diagnostic. Test accuracy is
+reported at the validation peak; the test labels are never used for
+selection.
+
+## Expected behavior
+
+Exact numbers can vary slightly with library versions and hardware. The
+checked-in executed notebook and artifacts record the environment used for
+the release. The intended qualitative checks are:
+
+- KAFT exceeds BP test accuracy in the six-layer comparison;
+- the ten-layer BP diagnostic reaches exact-zero weight gradients;
+- the output-adjacent preactivation error remains finite; and
+- the standardized penultimate hidden-state probe remains above chance.
+
+The checked end-to-end CPU run produced:
+
+| Method | Test accuracy at validation peak |
+|---|---:|
+| BP | \(68.87\pm1.20\%\) |
+| KAFT | **\(78.53\pm1.33\%\)** |
+
+For the separate ten-layer BP diagnostic, all ten weight gradients were
+exactly zero in 3/3 seeds. The output-adjacent error remained between
+\(1.26\times10^{-4}\) and \(1.60\times10^{-4}\), while the standardized
+penultimate probe obtained 51.4--57.8% accuracy (seven classes).
+
+## Scope
+
+This is a compact verification path, not the complete experimental suite.
+It covers the diagnostic and the central BP-versus-KAFT mechanism on one
+standard benchmark. The full evaluation uses additional datasets, backbones,
+depths, normalizers, and ablations.
diff --git a/THIRD_PARTY.md b/THIRD_PARTY.md
new file mode 100644
index 0000000..a508138
--- /dev/null
+++ b/THIRD_PARTY.md
@@ -0,0 +1,15 @@
+# Third-party dependencies
+
+No third-party source code or datasets are vendored in this repository.
+Runtime dependencies are installed from their standard package indexes.
+Cora is downloaded by PyTorch Geometric.
+
+| Dependency | Upstream license |
+|---|---|
+| PyTorch | BSD-3-Clause |
+| PyTorch Geometric | MIT |
+| NumPy | BSD-3-Clause |
+| pandas | BSD-3-Clause |
+| Matplotlib | PSF-based |
+| scikit-learn | BSD-3-Clause |
+| Jupyter / nbconvert | BSD-3-Clause |
diff --git a/artifacts/mvp_results.json b/artifacts/mvp_results.json
new file mode 100644
index 0000000..853b43b
--- /dev/null
+++ b/artifacts/mvp_results.json
@@ -0,0 +1,5089 @@
+{
+ "config": {
+ "dataset": "Cora",
+ "seeds": [
+ 0,
+ 1,
+ 2
+ ],
+ "depth": 6,
+ "diagnostic_depth": 10,
+ "hidden_dim": 64,
+ "epochs": 200,
+ "diagnostic_epochs": 100,
+ "eval_every": 5,
+ "learning_rate": 0.01,
+ "weight_decay": 0.0005,
+ "diffusion_alpha": 0.5,
+ "diffusion_steps": 10,
+ "hop_cap": 3,
+ "num_probes": 64,
+ "feedback_learning_rate": 0.5,
+ "align_every": 10,
+ "device": "cpu"
+ },
+ "environment": {
+ "python": "3.13.2",
+ "torch": "2.10.0+cu128",
+ "torch_geometric": "2.7.0",
+ "device": "cpu"
+ },
+ "summary": [
+ {
+ "method": "BP",
+ "mean_test_accuracy_percent": 68.86666615804037,
+ "std_test_accuracy_percent": 1.2013874199259418,
+ "seeds": 3
+ },
+ {
+ "method": "KAFT",
+ "mean_test_accuracy_percent": 78.53333353996277,
+ "std_test_accuracy_percent": 1.3316675764031687,
+ "seeds": 3
+ }
+ ],
+ "records": [
+ {
+ "seed": 0,
+ "method": "BP",
+ "result": {
+ "best_validation_accuracy": 0.699999988079071,
+ "test_accuracy_at_validation_peak": 0.7009999752044678,
+ "best_epoch": 30,
+ "final_train_loss": 0.05168084055185318,
+ "final_train_accuracy": 0.9714285731315613
+ },
+ "history": {
+ "train_loss": [
+ 1.945810317993164,
+ 1.945155143737793,
+ 1.944373607635498,
+ 1.9432259798049927,
+ 1.9410779476165771,
+ 1.936825156211853,
+ 1.9279170036315918,
+ 1.9090957641601562,
+ 1.8720836639404297,
+ 1.8045103549957275,
+ 1.6954940557479858,
+ 1.5477354526519775,
+ 1.3887065649032593,
+ 1.2635937929153442,
+ 1.3634454011917114,
+ 1.285407543182373,
+ 1.1819292306900024,
+ 1.0549691915512085,
+ 1.152423620223999,
+ 0.9918694496154785,
+ 0.976898729801178,
+ 0.9094933271408081,
+ 0.8507602214813232,
+ 0.7923446893692017,
+ 0.6816251277923584,
+ 0.643474817276001,
+ 0.5193461775779724,
+ 0.42915090918540955,
+ 0.38686394691467285,
+ 0.31766578555107117,
+ 0.2782776653766632,
+ 0.19816850125789642,
+ 0.18330474197864532,
+ 0.18293945491313934,
+ 0.14883112907409668,
+ 0.10870090872049332,
+ 0.11260432749986649,
+ 0.09169767796993256,
+ 0.07472129166126251,
+ 0.06651803106069565,
+ 0.04634956270456314,
+ 0.04116591438651085,
+ 0.030418232083320618,
+ 0.024433666840195656,
+ 0.02188827656209469,
+ 0.016107847914099693,
+ 0.013504930771887302,
+ 0.01075531542301178,
+ 0.009132121689617634,
+ 0.008842244744300842,
+ 0.00712918397039175,
+ 0.006729774177074432,
+ 0.006605932023376226,
+ 0.005193603690713644,
+ 0.005261830985546112,
+ 0.005108474753797054,
+ 0.004428542219102383,
+ 0.004429842345416546,
+ 0.004657898563891649,
+ 0.004264614544808865,
+ 0.00407783780246973,
+ 0.0042555974796414375,
+ 0.004172425251454115,
+ 0.003978777211159468,
+ 0.004118863958865404,
+ 0.004293218720704317,
+ 0.0042194887064397335,
+ 0.004306720104068518,
+ 0.0045041274279356,
+ 0.004520174115896225,
+ 0.004632835276424885,
+ 0.0047439271584153175,
+ 0.004786844830960035,
+ 0.004878089297562838,
+ 0.004915842320770025,
+ 0.005046066362410784,
+ 0.005067560821771622,
+ 0.005189564544707537,
+ 0.005285399034619331,
+ 0.005327553488314152,
+ 0.005467814859002829,
+ 0.005453511606901884,
+ 0.005549564957618713,
+ 0.0055250623263418674,
+ 0.005568584892898798,
+ 0.0055345045402646065,
+ 0.005537574645131826,
+ 0.005496477708220482,
+ 0.005486403126269579,
+ 0.00542787229642272,
+ 0.005398946348577738,
+ 0.005329837556928396,
+ 0.0052759405225515366,
+ 0.0051901331171393394,
+ 0.005123240407556295,
+ 0.0050232973881065845,
+ 0.004949911497533321,
+ 0.004850750323385,
+ 0.00476488471031189,
+ 0.0046715219505131245,
+ 0.004578345455229282,
+ 0.004494689404964447,
+ 0.004396766424179077,
+ 0.004316526465117931,
+ 0.00422319071367383,
+ 0.004148381296545267,
+ 0.004066584166139364,
+ 0.003991865552961826,
+ 0.0039304220117628574,
+ 0.0038679528515785933,
+ 0.003818111727014184,
+ 0.0037745616864413023,
+ 0.003733909921720624,
+ 0.0037012584507465363,
+ 0.0036749911960214376,
+ 0.003651267383247614,
+ 0.0036355729680508375,
+ 0.0036202806513756514,
+ 0.0036052814684808254,
+ 0.0036008418537676334,
+ 0.0035942639224231243,
+ 0.0035857472103089094,
+ 0.0035848766565322876,
+ 0.0035834363661706448,
+ 0.0035763958003371954,
+ 0.003574369242414832,
+ 0.0035603814758360386,
+ 0.0035559632815420628,
+ 0.00354974833317101,
+ 0.0035306436475366354,
+ 0.003514075418934226,
+ 0.0034845988266170025,
+ 0.0034616277553141117,
+ 0.003434654325246811,
+ 0.003391761565580964,
+ 0.003361939685419202,
+ 0.0033136745914816856,
+ 0.0032822657376527786,
+ 0.0032314297277480364,
+ 0.0031989826820790768,
+ 0.0031592166051268578,
+ 0.003114749677479267,
+ 0.003058158326894045,
+ 0.0030104489997029305,
+ 0.00297065288759768,
+ 0.002943062921985984,
+ 0.0029281291645020247,
+ 0.0029269582591950893,
+ 0.0029734584968537092,
+ 0.0030643718782812357,
+ 0.003180539235472679,
+ 0.0031542268116027117,
+ 0.003003203310072422,
+ 0.0029102852568030357,
+ 0.003032633336260915,
+ 0.003124598413705826,
+ 0.0030408313032239676,
+ 0.002954985713586211,
+ 0.00305315968580544,
+ 0.0031389419455081224,
+ 0.0030659434851258993,
+ 0.0030093269888311625,
+ 0.003060312010347843,
+ 0.0031303579453378916,
+ 0.003093246603384614,
+ 0.0030528828501701355,
+ 0.0030615627765655518,
+ 0.0031156246550381184,
+ 0.003126834984868765,
+ 0.0031046667136251926,
+ 0.0030754434410482645,
+ 0.0030705812387168407,
+ 0.003095795400440693,
+ 0.0031220102682709694,
+ 0.003132542595267296,
+ 0.003114979015663266,
+ 0.0030896763782948256,
+ 0.0030705889221280813,
+ 0.003075591055676341,
+ 0.0030897026881575584,
+ 0.0031222093384712934,
+ 0.003144477494060993,
+ 0.0031749606132507324,
+ 0.003182412125170231,
+ 0.0031918201129883528,
+ 0.0031742071732878685,
+ 0.003148606512695551,
+ 0.003097727196291089,
+ 0.0030703474767506123,
+ 0.0030639220494776964,
+ 0.0030820060055702925,
+ 0.0031181846279650927,
+ 0.0031582152005285025,
+ 0.0032241952139884233,
+ 0.0033194241113960743,
+ 0.0034648689907044172,
+ 0.0037725043948739767,
+ 0.00440186494961381,
+ 0.006616154685616493,
+ 0.05168084055185318
+ ],
+ "train_accuracy": [
+ 0.18571428954601288,
+ 0.5285714268684387,
+ 0.5428571701049805,
+ 0.3214285671710968,
+ 0.40714284777641296,
+ 0.4285714328289032,
+ 0.33571428060531616,
+ 0.3571428656578064,
+ 0.37857142090797424,
+ 0.3857142925262451,
+ 0.2857142984867096,
+ 0.30000001192092896,
+ 0.4571428596973419,
+ 0.4571428596973419,
+ 0.24285714328289032,
+ 0.37857142090797424,
+ 0.44999998807907104,
+ 0.5285714268684387,
+ 0.3857142925262451,
+ 0.41428571939468384,
+ 0.6000000238418579,
+ 0.7857142686843872,
+ 0.7428571581840515,
+ 0.7928571701049805,
+ 0.8428571224212646,
+ 0.7571428418159485,
+ 0.8928571343421936,
+ 0.9357143044471741,
+ 0.8999999761581421,
+ 0.9071428775787354,
+ 0.9142857193946838,
+ 0.9571428298950195,
+ 0.9571428298950195,
+ 0.949999988079071,
+ 0.9642857313156128,
+ 0.9642857313156128,
+ 0.9571428298950195,
+ 0.9642857313156128,
+ 0.9857142567634583,
+ 0.9857142567634583,
+ 0.9928571581840515,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 0.9714285731315613
+ ],
+ "validation_accuracy": [
+ 0.26600000262260437,
+ null,
+ null,
+ null,
+ null,
+ 0.22599999606609344,
+ null,
+ null,
+ null,
+ null,
+ 0.2460000067949295,
+ null,
+ null,
+ null,
+ null,
+ 0.37599998712539673,
+ null,
+ null,
+ null,
+ null,
+ 0.5559999942779541,
+ null,
+ null,
+ null,
+ null,
+ 0.6060000061988831,
+ null,
+ null,
+ null,
+ null,
+ 0.699999988079071,
+ null,
+ null,
+ null,
+ null,
+ 0.6880000233650208,
+ null,
+ null,
+ null,
+ null,
+ 0.6880000233650208,
+ null,
+ null,
+ null,
+ null,
+ 0.6620000004768372,
+ null,
+ null,
+ null,
+ null,
+ 0.6620000004768372,
+ null,
+ null,
+ null,
+ null,
+ 0.6759999990463257,
+ null,
+ null,
+ null,
+ null,
+ 0.6740000247955322,
+ null,
+ null,
+ null,
+ null,
+ 0.6639999747276306,
+ null,
+ null,
+ null,
+ null,
+ 0.6579999923706055,
+ null,
+ null,
+ null,
+ null,
+ 0.656000018119812,
+ null,
+ null,
+ null,
+ null,
+ 0.6600000262260437,
+ null,
+ null,
+ null,
+ null,
+ 0.6660000085830688,
+ null,
+ null,
+ null,
+ null,
+ 0.6740000247955322,
+ null,
+ null,
+ null,
+ null,
+ 0.6660000085830688,
+ null,
+ null,
+ null,
+ null,
+ 0.6700000166893005,
+ null,
+ null,
+ null,
+ null,
+ 0.6740000247955322,
+ null,
+ null,
+ null,
+ null,
+ 0.6740000247955322,
+ null,
+ null,
+ null,
+ null,
+ 0.6620000004768372,
+ null,
+ null,
+ null,
+ null,
+ 0.6660000085830688,
+ null,
+ null,
+ null,
+ null,
+ 0.671999990940094,
+ null,
+ null,
+ null,
+ null,
+ 0.6700000166893005,
+ null,
+ null,
+ null,
+ null,
+ 0.6700000166893005,
+ null,
+ null,
+ null,
+ null,
+ 0.6779999732971191,
+ null,
+ null,
+ null,
+ null,
+ 0.671999990940094,
+ null,
+ null,
+ null,
+ null,
+ 0.6639999747276306,
+ null,
+ null,
+ null,
+ null,
+ 0.671999990940094,
+ null,
+ null,
+ null,
+ null,
+ 0.671999990940094,
+ null,
+ null,
+ null,
+ null,
+ 0.6759999990463257,
+ null,
+ null,
+ null,
+ null,
+ 0.6779999732971191,
+ null,
+ null,
+ null,
+ null,
+ 0.6800000071525574,
+ null,
+ null,
+ null,
+ null,
+ 0.6779999732971191,
+ null,
+ null,
+ null,
+ null,
+ 0.6859999895095825,
+ null,
+ null,
+ null,
+ null,
+ 0.6880000233650208,
+ null,
+ null,
+ null,
+ null,
+ 0.6740000247955322,
+ null,
+ null,
+ null,
+ 0.2280000001192093
+ ],
+ "test_accuracy": [
+ 0.30000001192092896,
+ null,
+ null,
+ null,
+ null,
+ 0.2240000069141388,
+ null,
+ null,
+ null,
+ null,
+ 0.23600000143051147,
+ null,
+ null,
+ null,
+ null,
+ 0.40400001406669617,
+ null,
+ null,
+ null,
+ null,
+ 0.593999981880188,
+ null,
+ null,
+ null,
+ null,
+ 0.6299999952316284,
+ null,
+ null,
+ null,
+ null,
+ 0.7009999752044678,
+ null,
+ null,
+ null,
+ null,
+ 0.6869999766349792,
+ null,
+ null,
+ null,
+ null,
+ 0.6830000281333923,
+ null,
+ null,
+ null,
+ null,
+ 0.6869999766349792,
+ null,
+ null,
+ null,
+ null,
+ 0.6790000200271606,
+ null,
+ null,
+ null,
+ null,
+ 0.6779999732971191,
+ null,
+ null,
+ null,
+ null,
+ 0.6809999942779541,
+ null,
+ null,
+ null,
+ null,
+ 0.6800000071525574,
+ null,
+ null,
+ null,
+ null,
+ 0.6790000200271606,
+ null,
+ null,
+ null,
+ null,
+ 0.6840000152587891,
+ null,
+ null,
+ null,
+ null,
+ 0.6819999814033508,
+ null,
+ null,
+ null,
+ null,
+ 0.6809999942779541,
+ null,
+ null,
+ null,
+ null,
+ 0.6759999990463257,
+ null,
+ null,
+ null,
+ null,
+ 0.6779999732971191,
+ null,
+ null,
+ null,
+ null,
+ 0.6779999732971191,
+ null,
+ null,
+ null,
+ null,
+ 0.675000011920929,
+ null,
+ null,
+ null,
+ null,
+ 0.6740000247955322,
+ null,
+ null,
+ null,
+ null,
+ 0.6729999780654907,
+ null,
+ null,
+ null,
+ null,
+ 0.6690000295639038,
+ null,
+ null,
+ null,
+ null,
+ 0.6710000038146973,
+ null,
+ null,
+ null,
+ null,
+ 0.671999990940094,
+ null,
+ null,
+ null,
+ null,
+ 0.6729999780654907,
+ null,
+ null,
+ null,
+ null,
+ 0.6790000200271606,
+ null,
+ null,
+ null,
+ null,
+ 0.6819999814033508,
+ null,
+ null,
+ null,
+ null,
+ 0.6769999861717224,
+ null,
+ null,
+ null,
+ null,
+ 0.6819999814033508,
+ null,
+ null,
+ null,
+ null,
+ 0.6850000023841858,
+ null,
+ null,
+ null,
+ null,
+ 0.6840000152587891,
+ null,
+ null,
+ null,
+ null,
+ 0.6819999814033508,
+ null,
+ null,
+ null,
+ null,
+ 0.6850000023841858,
+ null,
+ null,
+ null,
+ null,
+ 0.6850000023841858,
+ null,
+ null,
+ null,
+ null,
+ 0.6869999766349792,
+ null,
+ null,
+ null,
+ null,
+ 0.6890000104904175,
+ null,
+ null,
+ null,
+ null,
+ 0.6809999942779541,
+ null,
+ null,
+ null,
+ 0.20499999821186066
+ ]
+ }
+ },
+ {
+ "seed": 0,
+ "method": "KAFT",
+ "result": {
+ "best_validation_accuracy": 0.7860000133514404,
+ "test_accuracy_at_validation_peak": 0.7919999957084656,
+ "best_epoch": 199,
+ "final_train_loss": 0.08470230549573898,
+ "final_train_accuracy": 1.0
+ },
+ "history": {
+ "train_loss": [
+ 1.945810317993164,
+ 1.9453604221343994,
+ 1.944266676902771,
+ 1.9409555196762085,
+ 1.9338352680206299,
+ 1.9193751811981201,
+ 1.8914282321929932,
+ 1.8417848348617554,
+ 1.7609310150146484,
+ 1.6443229913711548,
+ 1.4916290044784546,
+ 1.3163764476776123,
+ 1.1413277387619019,
+ 0.968768298625946,
+ 0.7932412028312683,
+ 0.6408629417419434,
+ 0.4945080876350403,
+ 0.3503156006336212,
+ 0.27591201663017273,
+ 0.24494926631450653,
+ 0.21842233836650848,
+ 0.1879555881023407,
+ 0.22344626486301422,
+ 0.1477193385362625,
+ 0.1354639083147049,
+ 0.11874107271432877,
+ 0.12059737741947174,
+ 0.09019843488931656,
+ 0.22065097093582153,
+ 0.10421764105558395,
+ 0.08914170414209366,
+ 0.1498502939939499,
+ 0.07627850770950317,
+ 0.1324273943901062,
+ 0.08119069039821625,
+ 0.09352591633796692,
+ 0.0784865990281105,
+ 0.06735353171825409,
+ 0.0837758332490921,
+ 0.11478838324546814,
+ 0.06602784991264343,
+ 0.06641227006912231,
+ 0.07292615622282028,
+ 0.08925129473209381,
+ 0.06930563598871231,
+ 0.05968441441655159,
+ 0.07138963043689728,
+ 0.06356846541166306,
+ 0.05342119187116623,
+ 0.05820212513208389,
+ 0.06185578554868698,
+ 0.06052607670426369,
+ 0.06038255617022514,
+ 0.06574398279190063,
+ 0.06147950887680054,
+ 0.06252913177013397,
+ 0.06484830379486084,
+ 0.0627584233880043,
+ 0.06913268566131592,
+ 0.07008479535579681,
+ 0.06732159107923508,
+ 0.07038330286741257,
+ 0.06970369815826416,
+ 0.06839760392904282,
+ 0.07713884115219116,
+ 0.06963692605495453,
+ 0.07348942756652832,
+ 0.07175100594758987,
+ 0.06951902061700821,
+ 0.07419859617948532,
+ 0.0731884241104126,
+ 0.07169728726148605,
+ 0.07391165941953659,
+ 0.07086650282144547,
+ 0.07091395556926727,
+ 0.07659467309713364,
+ 0.07224545627832413,
+ 0.07056297361850739,
+ 0.07405846565961838,
+ 0.07093697041273117,
+ 0.07264326512813568,
+ 0.07692872732877731,
+ 0.07211459428071976,
+ 0.07353105396032333,
+ 0.07638770341873169,
+ 0.07171633839607239,
+ 0.07587651163339615,
+ 0.0769757628440857,
+ 0.07197345793247223,
+ 0.0755741149187088,
+ 0.07425661385059357,
+ 0.072358138859272,
+ 0.07753091305494308,
+ 0.07346799969673157,
+ 0.07234709709882736,
+ 0.0755523294210434,
+ 0.07188332080841064,
+ 0.0746576189994812,
+ 0.07636921852827072,
+ 0.07123865932226181,
+ 0.07445992529392242,
+ 0.07340745627880096,
+ 0.0722942054271698,
+ 0.07725751399993896,
+ 0.07275525480508804,
+ 0.07291366904973984,
+ 0.07440856844186783,
+ 0.07171346992254257,
+ 0.07565660029649734,
+ 0.07425108551979065,
+ 0.07230500131845474,
+ 0.0745619535446167,
+ 0.07261388748884201,
+ 0.07460122555494308,
+ 0.07527297735214233,
+ 0.07283618301153183,
+ 0.07448635995388031,
+ 0.07355139404535294,
+ 0.07444553077220917,
+ 0.07567298412322998,
+ 0.07365289330482483,
+ 0.07458202540874481,
+ 0.07413017004728317,
+ 0.07475969940423965,
+ 0.07556673139333725,
+ 0.07446014881134033,
+ 0.07484758645296097,
+ 0.07451318949460983,
+ 0.07494986057281494,
+ 0.07524027675390244,
+ 0.0744628757238388,
+ 0.07454086095094681,
+ 0.07429031282663345,
+ 0.074606753885746,
+ 0.07440229505300522,
+ 0.07409629225730896,
+ 0.07410494238138199,
+ 0.0741080567240715,
+ 0.07442208379507065,
+ 0.07425029575824738,
+ 0.07426917552947998,
+ 0.07437903434038162,
+ 0.07468882948160172,
+ 0.07490908354520798,
+ 0.07501477003097534,
+ 0.07524258643388748,
+ 0.07551385462284088,
+ 0.0758877694606781,
+ 0.0761321410536766,
+ 0.07645054161548615,
+ 0.07680029422044754,
+ 0.07715947926044464,
+ 0.07735204696655273,
+ 0.07759466767311096,
+ 0.07789576798677444,
+ 0.07822040468454361,
+ 0.07843691855669022,
+ 0.07859167456626892,
+ 0.07881081104278564,
+ 0.079080730676651,
+ 0.07931014895439148,
+ 0.07944497466087341,
+ 0.0796201303601265,
+ 0.07983469218015671,
+ 0.07997645437717438,
+ 0.08000446110963821,
+ 0.08001155406236649,
+ 0.07998882234096527,
+ 0.07990000396966934,
+ 0.07974077761173248,
+ 0.07960119843482971,
+ 0.0794922411441803,
+ 0.07936783879995346,
+ 0.079229436814785,
+ 0.07916729897260666,
+ 0.07918629050254822,
+ 0.0792311429977417,
+ 0.07933028042316437,
+ 0.07950619608163834,
+ 0.07974898815155029,
+ 0.07998967170715332,
+ 0.08021802455186844,
+ 0.08050426095724106,
+ 0.08082615584135056,
+ 0.08111470192670822,
+ 0.08138041943311691,
+ 0.08165507018566132,
+ 0.08193886280059814,
+ 0.08219650387763977,
+ 0.08243934065103531,
+ 0.08269850164651871,
+ 0.08294381201267242,
+ 0.0831562951207161,
+ 0.083376444876194,
+ 0.08360307663679123,
+ 0.08383273333311081,
+ 0.0840403214097023,
+ 0.0842425525188446,
+ 0.08446098864078522,
+ 0.08470230549573898
+ ],
+ "train_accuracy": [
+ 0.18571428954601288,
+ 0.24285714328289032,
+ 0.27142858505249023,
+ 0.3857142925262451,
+ 0.40714284777641296,
+ 0.4214285612106323,
+ 0.4214285612106323,
+ 0.4214285612106323,
+ 0.4357142746448517,
+ 0.4928571283817291,
+ 0.5857142806053162,
+ 0.6214285492897034,
+ 0.6714285612106323,
+ 0.7571428418159485,
+ 0.9214285612106323,
+ 0.9285714030265808,
+ 0.8999999761581421,
+ 0.9285714030265808,
+ 0.9357143044471741,
+ 0.9285714030265808,
+ 0.9285714030265808,
+ 0.9428571462631226,
+ 0.9285714030265808,
+ 0.9428571462631226,
+ 0.9571428298950195,
+ 0.9357143044471741,
+ 0.949999988079071,
+ 0.9714285731315613,
+ 0.9214285612106323,
+ 0.9428571462631226,
+ 0.9428571462631226,
+ 0.9428571462631226,
+ 0.9785714149475098,
+ 0.9714285731315613,
+ 0.9714285731315613,
+ 0.9785714149475098,
+ 0.9857142567634583,
+ 0.9642857313156128,
+ 0.9785714149475098,
+ 0.9428571462631226,
+ 0.9857142567634583,
+ 0.9714285731315613,
+ 0.9857142567634583,
+ 0.9714285731315613,
+ 0.9857142567634583,
+ 0.9785714149475098,
+ 0.9857142567634583,
+ 0.9642857313156128,
+ 0.9928571581840515,
+ 0.9857142567634583,
+ 0.9857142567634583,
+ 0.9928571581840515,
+ 0.9928571581840515,
+ 0.9857142567634583,
+ 0.9928571581840515,
+ 0.9928571581840515,
+ 1.0,
+ 1.0,
+ 0.9928571581840515,
+ 1.0,
+ 1.0,
+ 0.9928571581840515,
+ 0.9928571581840515,
+ 1.0,
+ 0.9857142567634583,
+ 1.0,
+ 0.9928571581840515,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 0.9928571581840515,
+ 0.9928571581840515,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 0.9928571581840515,
+ 0.9928571581840515,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 0.9928571581840515,
+ 0.9928571581840515,
+ 1.0,
+ 1.0,
+ 1.0,
+ 0.9928571581840515,
+ 0.9928571581840515,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 0.9928571581840515,
+ 0.9928571581840515,
+ 1.0,
+ 1.0,
+ 1.0,
+ 0.9928571581840515,
+ 0.9928571581840515,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 0.9928571581840515,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "validation_accuracy": [
+ 0.14800000190734863,
+ null,
+ null,
+ null,
+ null,
+ 0.27000001072883606,
+ null,
+ null,
+ null,
+ null,
+ 0.4580000042915344,
+ null,
+ null,
+ null,
+ null,
+ 0.7200000286102295,
+ null,
+ null,
+ null,
+ null,
+ 0.7739999890327454,
+ null,
+ null,
+ null,
+ null,
+ 0.7599999904632568,
+ null,
+ null,
+ null,
+ null,
+ 0.7179999947547913,
+ null,
+ null,
+ null,
+ null,
+ 0.7360000014305115,
+ null,
+ null,
+ null,
+ null,
+ 0.7580000162124634,
+ null,
+ null,
+ null,
+ null,
+ 0.7519999742507935,
+ null,
+ null,
+ null,
+ null,
+ 0.7519999742507935,
+ null,
+ null,
+ null,
+ null,
+ 0.7540000081062317,
+ null,
+ null,
+ null,
+ null,
+ 0.7540000081062317,
+ null,
+ null,
+ null,
+ null,
+ 0.7620000243186951,
+ null,
+ null,
+ null,
+ null,
+ 0.7620000243186951,
+ null,
+ null,
+ null,
+ null,
+ 0.7680000066757202,
+ null,
+ null,
+ null,
+ null,
+ 0.7720000147819519,
+ null,
+ null,
+ null,
+ null,
+ 0.7720000147819519,
+ null,
+ null,
+ null,
+ null,
+ 0.765999972820282,
+ null,
+ null,
+ null,
+ null,
+ 0.7720000147819519,
+ null,
+ null,
+ null,
+ null,
+ 0.765999972820282,
+ null,
+ null,
+ null,
+ null,
+ 0.7680000066757202,
+ null,
+ null,
+ null,
+ null,
+ 0.7699999809265137,
+ null,
+ null,
+ null,
+ null,
+ 0.7720000147819519,
+ null,
+ null,
+ null,
+ null,
+ 0.7739999890327454,
+ null,
+ null,
+ null,
+ null,
+ 0.7739999890327454,
+ null,
+ null,
+ null,
+ null,
+ 0.777999997138977,
+ null,
+ null,
+ null,
+ null,
+ 0.7760000228881836,
+ null,
+ null,
+ null,
+ null,
+ 0.7760000228881836,
+ null,
+ null,
+ null,
+ null,
+ 0.7739999890327454,
+ null,
+ null,
+ null,
+ null,
+ 0.7739999890327454,
+ null,
+ null,
+ null,
+ null,
+ 0.7739999890327454,
+ null,
+ null,
+ null,
+ null,
+ 0.777999997138977,
+ null,
+ null,
+ null,
+ null,
+ 0.777999997138977,
+ null,
+ null,
+ null,
+ null,
+ 0.7760000228881836,
+ null,
+ null,
+ null,
+ null,
+ 0.777999997138977,
+ null,
+ null,
+ null,
+ null,
+ 0.777999997138977,
+ null,
+ null,
+ null,
+ null,
+ 0.7820000052452087,
+ null,
+ null,
+ null,
+ null,
+ 0.7820000052452087,
+ null,
+ null,
+ null,
+ null,
+ 0.7820000052452087,
+ null,
+ null,
+ null,
+ 0.7860000133514404
+ ],
+ "test_accuracy": [
+ 0.1770000010728836,
+ null,
+ null,
+ null,
+ null,
+ 0.28200000524520874,
+ null,
+ null,
+ null,
+ null,
+ 0.48500001430511475,
+ null,
+ null,
+ null,
+ null,
+ 0.7099999785423279,
+ null,
+ null,
+ null,
+ null,
+ 0.7639999985694885,
+ null,
+ null,
+ null,
+ null,
+ 0.7820000052452087,
+ null,
+ null,
+ null,
+ null,
+ 0.7509999871253967,
+ null,
+ null,
+ null,
+ null,
+ 0.7599999904632568,
+ null,
+ null,
+ null,
+ null,
+ 0.765999972820282,
+ null,
+ null,
+ null,
+ null,
+ 0.753000020980835,
+ null,
+ null,
+ null,
+ null,
+ 0.7670000195503235,
+ null,
+ null,
+ null,
+ null,
+ 0.7590000033378601,
+ null,
+ null,
+ null,
+ null,
+ 0.7590000033378601,
+ null,
+ null,
+ null,
+ null,
+ 0.7609999775886536,
+ null,
+ null,
+ null,
+ null,
+ 0.7699999809265137,
+ null,
+ null,
+ null,
+ null,
+ 0.7749999761581421,
+ null,
+ null,
+ null,
+ null,
+ 0.7829999923706055,
+ null,
+ null,
+ null,
+ null,
+ 0.7820000052452087,
+ null,
+ null,
+ null,
+ null,
+ 0.777999997138977,
+ null,
+ null,
+ null,
+ null,
+ 0.7739999890327454,
+ null,
+ null,
+ null,
+ null,
+ 0.7720000147819519,
+ null,
+ null,
+ null,
+ null,
+ 0.7739999890327454,
+ null,
+ null,
+ null,
+ null,
+ 0.7760000228881836,
+ null,
+ null,
+ null,
+ null,
+ 0.781000018119812,
+ null,
+ null,
+ null,
+ null,
+ 0.7829999923706055,
+ null,
+ null,
+ null,
+ null,
+ 0.7829999923706055,
+ null,
+ null,
+ null,
+ null,
+ 0.7850000262260437,
+ null,
+ null,
+ null,
+ null,
+ 0.7860000133514404,
+ null,
+ null,
+ null,
+ null,
+ 0.7889999747276306,
+ null,
+ null,
+ null,
+ null,
+ 0.7889999747276306,
+ null,
+ null,
+ null,
+ null,
+ 0.7910000085830688,
+ null,
+ null,
+ null,
+ null,
+ 0.7940000295639038,
+ null,
+ null,
+ null,
+ null,
+ 0.7950000166893005,
+ null,
+ null,
+ null,
+ null,
+ 0.7940000295639038,
+ null,
+ null,
+ null,
+ null,
+ 0.7940000295639038,
+ null,
+ null,
+ null,
+ null,
+ 0.7929999828338623,
+ null,
+ null,
+ null,
+ null,
+ 0.7929999828338623,
+ null,
+ null,
+ null,
+ null,
+ 0.7929999828338623,
+ null,
+ null,
+ null,
+ null,
+ 0.7919999957084656,
+ null,
+ null,
+ null,
+ null,
+ 0.7919999957084656,
+ null,
+ null,
+ null,
+ 0.7919999957084656
+ ]
+ }
+ },
+ {
+ "seed": 1,
+ "method": "BP",
+ "result": {
+ "best_validation_accuracy": 0.699999988079071,
+ "test_accuracy_at_validation_peak": 0.6769999861717224,
+ "best_epoch": 155,
+ "final_train_loss": 0.0030105304904282093,
+ "final_train_accuracy": 1.0
+ },
+ "history": {
+ "train_loss": [
+ 1.9459162950515747,
+ 1.9451146125793457,
+ 1.9443912506103516,
+ 1.9429528713226318,
+ 1.9400492906570435,
+ 1.933648705482483,
+ 1.9193089008331299,
+ 1.8904401063919067,
+ 1.8362337350845337,
+ 1.7532532215118408,
+ 1.65682852268219,
+ 1.5483169555664062,
+ 1.437840461730957,
+ 1.4447424411773682,
+ 1.2450275421142578,
+ 1.252521276473999,
+ 1.0601873397827148,
+ 1.032821774482727,
+ 0.9542405009269714,
+ 0.8496378064155579,
+ 0.8034690618515015,
+ 0.7331902384757996,
+ 0.661990761756897,
+ 0.6550807356834412,
+ 0.5512269735336304,
+ 0.4567493498325348,
+ 0.39526015520095825,
+ 0.4095519483089447,
+ 0.2586488723754883,
+ 0.2451193630695343,
+ 0.22646908462047577,
+ 0.1798834651708603,
+ 0.11555595695972443,
+ 0.12676085531711578,
+ 0.06492182612419128,
+ 0.0842026025056839,
+ 0.05533738061785698,
+ 0.05053960904479027,
+ 0.05163499340415001,
+ 0.029629793018102646,
+ 0.03904866427183151,
+ 0.03248801827430725,
+ 0.02214021421968937,
+ 0.02643718384206295,
+ 0.024204373359680176,
+ 0.016757570207118988,
+ 0.014992921613156796,
+ 0.018567495048046112,
+ 0.011504198424518108,
+ 0.009644250385463238,
+ 0.011144625954329967,
+ 0.010799852199852467,
+ 0.007975328713655472,
+ 0.006752056535333395,
+ 0.0076516722328960896,
+ 0.007747394498437643,
+ 0.006309042684733868,
+ 0.005377902649343014,
+ 0.005567918997257948,
+ 0.00597925391048193,
+ 0.005341020878404379,
+ 0.004496113862842321,
+ 0.0044180601835250854,
+ 0.004742486402392387,
+ 0.004724523052573204,
+ 0.004318051505833864,
+ 0.004147368483245373,
+ 0.004426636733114719,
+ 0.004714041016995907,
+ 0.00455551827326417,
+ 0.0043533481657505035,
+ 0.004493813496083021,
+ 0.004714650567620993,
+ 0.004655821714550257,
+ 0.004565127659589052,
+ 0.004733890760689974,
+ 0.004958585370332003,
+ 0.004933054093271494,
+ 0.004942022264003754,
+ 0.005130451638251543,
+ 0.005232259631156921,
+ 0.0051996465772390366,
+ 0.005286009982228279,
+ 0.005439893342554569,
+ 0.005426448304206133,
+ 0.005447137635201216,
+ 0.005579139105975628,
+ 0.005602458957582712,
+ 0.005608349572867155,
+ 0.00570284528657794,
+ 0.00569999311119318,
+ 0.00567971495911479,
+ 0.0057381982915103436,
+ 0.0057121519930660725,
+ 0.005691564176231623,
+ 0.00570660037919879,
+ 0.005630932282656431,
+ 0.0055996025912463665,
+ 0.005552249029278755,
+ 0.005468754097819328,
+ 0.005430173594504595,
+ 0.005334107670933008,
+ 0.005261985119432211,
+ 0.005179964005947113,
+ 0.005077348556369543,
+ 0.004996894858777523,
+ 0.004877705592662096,
+ 0.004783014301210642,
+ 0.004659988451749086,
+ 0.004541012458503246,
+ 0.004414732567965984,
+ 0.00428073201328516,
+ 0.004159937612712383,
+ 0.004022058565169573,
+ 0.0038983009289950132,
+ 0.0037753088399767876,
+ 0.0036574818659573793,
+ 0.0035472908057272434,
+ 0.0034506325609982014,
+ 0.0033576686400920153,
+ 0.0032710775267332792,
+ 0.0032004094682633877,
+ 0.0031476730946451426,
+ 0.0030924221500754356,
+ 0.0030458918772637844,
+ 0.003014110028743744,
+ 0.0030009120237082243,
+ 0.0029827565886080265,
+ 0.002968849614262581,
+ 0.002962626749649644,
+ 0.002967739710584283,
+ 0.002975760493427515,
+ 0.0029923010151833296,
+ 0.0030044117011129856,
+ 0.003007681341841817,
+ 0.0030159077141433954,
+ 0.0030289851129055023,
+ 0.0030454059597104788,
+ 0.003052082611247897,
+ 0.003051005071029067,
+ 0.0030464192386716604,
+ 0.003043309086933732,
+ 0.003043994540348649,
+ 0.003040423383936286,
+ 0.0030326114501804113,
+ 0.0030209256801754236,
+ 0.003011913737282157,
+ 0.003007860854268074,
+ 0.0029971860349178314,
+ 0.002987458137795329,
+ 0.00297689251601696,
+ 0.002971227513626218,
+ 0.0029661760199815035,
+ 0.0029644302558153868,
+ 0.002959704725071788,
+ 0.002952765440568328,
+ 0.002947371918708086,
+ 0.0029497314244508743,
+ 0.00295274518430233,
+ 0.002955971984192729,
+ 0.002959373639896512,
+ 0.002963743871077895,
+ 0.002972882706671953,
+ 0.002976752584800124,
+ 0.002980197547003627,
+ 0.002982399193570018,
+ 0.002984666498377919,
+ 0.002981067867949605,
+ 0.0029783137142658234,
+ 0.00298161874525249,
+ 0.002979890676215291,
+ 0.002980634570121765,
+ 0.002982617588713765,
+ 0.0029832618311047554,
+ 0.002991342917084694,
+ 0.0030011546332389116,
+ 0.0029966323636472225,
+ 0.0029790904372930527,
+ 0.002971735317260027,
+ 0.0029856772162020206,
+ 0.002988674910739064,
+ 0.00298481248319149,
+ 0.00297887553460896,
+ 0.002980476478114724,
+ 0.0029795982409268618,
+ 0.0029812201391905546,
+ 0.002981818513944745,
+ 0.0029822092037647963,
+ 0.0029858825728297234,
+ 0.002988262800499797,
+ 0.002991987159475684,
+ 0.0029973499476909637,
+ 0.0030008992180228233,
+ 0.0030154085252434015,
+ 0.003024469828233123,
+ 0.0030103870667517185,
+ 0.003005007514730096,
+ 0.003016448812559247,
+ 0.0030160245951265097,
+ 0.0030105304904282093
+ ],
+ "train_accuracy": [
+ 0.13571429252624512,
+ 0.2571428716182709,
+ 0.17142857611179352,
+ 0.26428571343421936,
+ 0.3642857074737549,
+ 0.2142857164144516,
+ 0.2142857164144516,
+ 0.20000000298023224,
+ 0.2928571403026581,
+ 0.3285714387893677,
+ 0.3214285671710968,
+ 0.2928571403026581,
+ 0.3285714387893677,
+ 0.4357142746448517,
+ 0.5214285850524902,
+ 0.5214285850524902,
+ 0.5785714387893677,
+ 0.5357142686843872,
+ 0.6071428656578064,
+ 0.6357142925262451,
+ 0.6214285492897034,
+ 0.7214285731315613,
+ 0.7714285850524902,
+ 0.7857142686843872,
+ 0.7928571701049805,
+ 0.8285714387893677,
+ 0.8928571343421936,
+ 0.8357142806053162,
+ 0.8999999761581421,
+ 0.9142857193946838,
+ 0.9214285612106323,
+ 0.949999988079071,
+ 0.9642857313156128,
+ 0.9642857313156128,
+ 0.9785714149475098,
+ 0.9714285731315613,
+ 0.9857142567634583,
+ 0.9857142567634583,
+ 0.9857142567634583,
+ 0.9928571581840515,
+ 0.9857142567634583,
+ 0.9928571581840515,
+ 1.0,
+ 0.9928571581840515,
+ 0.9928571581840515,
+ 1.0,
+ 0.9928571581840515,
+ 0.9928571581840515,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "validation_accuracy": [
+ 0.18799999356269836,
+ null,
+ null,
+ null,
+ null,
+ 0.1899999976158142,
+ null,
+ null,
+ null,
+ null,
+ 0.1860000044107437,
+ null,
+ null,
+ null,
+ null,
+ 0.44999998807907104,
+ null,
+ null,
+ null,
+ null,
+ 0.49799999594688416,
+ null,
+ null,
+ null,
+ null,
+ 0.6359999775886536,
+ null,
+ null,
+ null,
+ null,
+ 0.6579999923706055,
+ null,
+ null,
+ null,
+ null,
+ 0.6940000057220459,
+ null,
+ null,
+ null,
+ null,
+ 0.6880000233650208,
+ null,
+ null,
+ null,
+ null,
+ 0.6759999990463257,
+ null,
+ null,
+ null,
+ null,
+ 0.6679999828338623,
+ null,
+ null,
+ null,
+ null,
+ 0.6919999718666077,
+ null,
+ null,
+ null,
+ null,
+ 0.6740000247955322,
+ null,
+ null,
+ null,
+ null,
+ 0.6819999814033508,
+ null,
+ null,
+ null,
+ null,
+ 0.6800000071525574,
+ null,
+ null,
+ null,
+ null,
+ 0.6859999895095825,
+ null,
+ null,
+ null,
+ null,
+ 0.6899999976158142,
+ null,
+ null,
+ null,
+ null,
+ 0.6959999799728394,
+ null,
+ null,
+ null,
+ null,
+ 0.6959999799728394,
+ null,
+ null,
+ null,
+ null,
+ 0.6919999718666077,
+ null,
+ null,
+ null,
+ null,
+ 0.6919999718666077,
+ null,
+ null,
+ null,
+ null,
+ 0.6919999718666077,
+ null,
+ null,
+ null,
+ null,
+ 0.6919999718666077,
+ null,
+ null,
+ null,
+ null,
+ 0.6959999799728394,
+ null,
+ null,
+ null,
+ null,
+ 0.6899999976158142,
+ null,
+ null,
+ null,
+ null,
+ 0.6899999976158142,
+ null,
+ null,
+ null,
+ null,
+ 0.6880000233650208,
+ null,
+ null,
+ null,
+ null,
+ 0.6919999718666077,
+ null,
+ null,
+ null,
+ null,
+ 0.6940000057220459,
+ null,
+ null,
+ null,
+ null,
+ 0.6940000057220459,
+ null,
+ null,
+ null,
+ null,
+ 0.6980000138282776,
+ null,
+ null,
+ null,
+ null,
+ 0.699999988079071,
+ null,
+ null,
+ null,
+ null,
+ 0.699999988079071,
+ null,
+ null,
+ null,
+ null,
+ 0.6980000138282776,
+ null,
+ null,
+ null,
+ null,
+ 0.6959999799728394,
+ null,
+ null,
+ null,
+ null,
+ 0.6940000057220459,
+ null,
+ null,
+ null,
+ null,
+ 0.6940000057220459,
+ null,
+ null,
+ null,
+ null,
+ 0.6959999799728394,
+ null,
+ null,
+ null,
+ null,
+ 0.6959999799728394,
+ null,
+ null,
+ null,
+ null,
+ 0.6980000138282776,
+ null,
+ null,
+ null,
+ 0.6980000138282776
+ ],
+ "test_accuracy": [
+ 0.1889999955892563,
+ null,
+ null,
+ null,
+ null,
+ 0.16500000655651093,
+ null,
+ null,
+ null,
+ null,
+ 0.18799999356269836,
+ null,
+ null,
+ null,
+ null,
+ 0.421999990940094,
+ null,
+ null,
+ null,
+ null,
+ 0.48899999260902405,
+ null,
+ null,
+ null,
+ null,
+ 0.6039999723434448,
+ null,
+ null,
+ null,
+ null,
+ 0.6449999809265137,
+ null,
+ null,
+ null,
+ null,
+ 0.6840000152587891,
+ null,
+ null,
+ null,
+ null,
+ 0.6740000247955322,
+ null,
+ null,
+ null,
+ null,
+ 0.6840000152587891,
+ null,
+ null,
+ null,
+ null,
+ 0.6759999990463257,
+ null,
+ null,
+ null,
+ null,
+ 0.6800000071525574,
+ null,
+ null,
+ null,
+ null,
+ 0.6790000200271606,
+ null,
+ null,
+ null,
+ null,
+ 0.6769999861717224,
+ null,
+ null,
+ null,
+ null,
+ 0.675000011920929,
+ null,
+ null,
+ null,
+ null,
+ 0.6769999861717224,
+ null,
+ null,
+ null,
+ null,
+ 0.6840000152587891,
+ null,
+ null,
+ null,
+ null,
+ 0.6880000233650208,
+ null,
+ null,
+ null,
+ null,
+ 0.6890000104904175,
+ null,
+ null,
+ null,
+ null,
+ 0.6869999766349792,
+ null,
+ null,
+ null,
+ null,
+ 0.6819999814033508,
+ null,
+ null,
+ null,
+ null,
+ 0.6850000023841858,
+ null,
+ null,
+ null,
+ null,
+ 0.6819999814033508,
+ null,
+ null,
+ null,
+ null,
+ 0.6840000152587891,
+ null,
+ null,
+ null,
+ null,
+ 0.6819999814033508,
+ null,
+ null,
+ null,
+ null,
+ 0.6809999942779541,
+ null,
+ null,
+ null,
+ null,
+ 0.6800000071525574,
+ null,
+ null,
+ null,
+ null,
+ 0.6809999942779541,
+ null,
+ null,
+ null,
+ null,
+ 0.6809999942779541,
+ null,
+ null,
+ null,
+ null,
+ 0.6790000200271606,
+ null,
+ null,
+ null,
+ null,
+ 0.6779999732971191,
+ null,
+ null,
+ null,
+ null,
+ 0.6769999861717224,
+ null,
+ null,
+ null,
+ null,
+ 0.6790000200271606,
+ null,
+ null,
+ null,
+ null,
+ 0.6809999942779541,
+ null,
+ null,
+ null,
+ null,
+ 0.6809999942779541,
+ null,
+ null,
+ null,
+ null,
+ 0.6819999814033508,
+ null,
+ null,
+ null,
+ null,
+ 0.6819999814033508,
+ null,
+ null,
+ null,
+ null,
+ 0.6830000281333923,
+ null,
+ null,
+ null,
+ null,
+ 0.6819999814033508,
+ null,
+ null,
+ null,
+ null,
+ 0.6830000281333923,
+ null,
+ null,
+ null,
+ 0.6830000281333923
+ ]
+ }
+ },
+ {
+ "seed": 1,
+ "method": "KAFT",
+ "result": {
+ "best_validation_accuracy": 0.7839999794960022,
+ "test_accuracy_at_validation_peak": 0.7699999809265137,
+ "best_epoch": 195,
+ "final_train_loss": 0.08124533295631409,
+ "final_train_accuracy": 1.0
+ },
+ "history": {
+ "train_loss": [
+ 1.9459162950515747,
+ 1.9452067613601685,
+ 1.9435622692108154,
+ 1.9390864372253418,
+ 1.928704857826233,
+ 1.9068464040756226,
+ 1.864554524421692,
+ 1.7922849655151367,
+ 1.6787675619125366,
+ 1.5185761451721191,
+ 1.3253059387207031,
+ 1.1188054084777832,
+ 0.9122646450996399,
+ 0.7221745848655701,
+ 0.5591880679130554,
+ 0.4132870137691498,
+ 0.31822600960731506,
+ 0.24666140973567963,
+ 0.20874939858913422,
+ 0.1807330697774887,
+ 0.1704433262348175,
+ 0.15563613176345825,
+ 0.1333589404821396,
+ 0.18847477436065674,
+ 0.11938124895095825,
+ 0.20923621952533722,
+ 0.10736289620399475,
+ 0.2003614604473114,
+ 0.12449682503938675,
+ 0.14105692505836487,
+ 0.13434582948684692,
+ 0.16869822144508362,
+ 0.21504394710063934,
+ 0.17102830111980438,
+ 0.20487895607948303,
+ 0.25318700075149536,
+ 0.22407333552837372,
+ 0.4267157018184662,
+ 0.24726611375808716,
+ 0.43124425411224365,
+ 0.42608630657196045,
+ 0.29624342918395996,
+ 0.2766661047935486,
+ 0.3609015643596649,
+ 0.3417588472366333,
+ 0.1557687371969223,
+ 0.1788741797208786,
+ 0.17318685352802277,
+ 0.12110105156898499,
+ 0.10944145172834396,
+ 0.11167329549789429,
+ 0.13214658200740814,
+ 0.1282026171684265,
+ 0.09009211510419846,
+ 0.07502426952123642,
+ 0.07572004199028015,
+ 0.08193032443523407,
+ 0.09913259744644165,
+ 0.1155056431889534,
+ 0.1097930297255516,
+ 0.09511476755142212,
+ 0.09587880223989487,
+ 0.10003499686717987,
+ 0.09514661878347397,
+ 0.09271939843893051,
+ 0.1012570932507515,
+ 0.1088155210018158,
+ 0.10591612756252289,
+ 0.10028224438428879,
+ 0.09694357216358185,
+ 0.09533634781837463,
+ 0.09647765755653381,
+ 0.0982942208647728,
+ 0.09802056849002838,
+ 0.09837055206298828,
+ 0.09973646700382233,
+ 0.09739838540554047,
+ 0.09380695223808289,
+ 0.09542898833751678,
+ 0.09943606704473495,
+ 0.09903956204652786,
+ 0.09515392780303955,
+ 0.0927177295088768,
+ 0.09246876835823059,
+ 0.09274163097143173,
+ 0.09303659945726395,
+ 0.09353312849998474,
+ 0.09427513182163239,
+ 0.0949142724275589,
+ 0.09491834789514542,
+ 0.09402454644441605,
+ 0.09232214093208313,
+ 0.09012425690889359,
+ 0.08814629912376404,
+ 0.08684384822845459,
+ 0.08500486612319946,
+ 0.0829978957772255,
+ 0.08318531513214111,
+ 0.08432204276323318,
+ 0.08301655948162079,
+ 0.08046310395002365,
+ 0.0786750316619873,
+ 0.07782825082540512,
+ 0.07766314595937729,
+ 0.07727038115262985,
+ 0.07601813226938248,
+ 0.07481370866298676,
+ 0.07445062696933746,
+ 0.07447920739650726,
+ 0.07411781698465347,
+ 0.07319005578756332,
+ 0.07213908433914185,
+ 0.07142280042171478,
+ 0.07106898725032806,
+ 0.07076933979988098,
+ 0.0704275369644165,
+ 0.07020885497331619,
+ 0.07022098451852798,
+ 0.07026159018278122,
+ 0.07018967717885971,
+ 0.07011313736438751,
+ 0.0700862929224968,
+ 0.07000576704740524,
+ 0.07000917196273804,
+ 0.07026157528162003,
+ 0.07053796947002411,
+ 0.07059549540281296,
+ 0.0705575942993164,
+ 0.07062375545501709,
+ 0.07081720232963562,
+ 0.07101606577634811,
+ 0.07110588997602463,
+ 0.07111988961696625,
+ 0.07115960121154785,
+ 0.0712699294090271,
+ 0.0714598149061203,
+ 0.07160452753305435,
+ 0.0715726688504219,
+ 0.07151060551404953,
+ 0.07160399109125137,
+ 0.07177436351776123,
+ 0.07193093001842499,
+ 0.07210462540388107,
+ 0.0722939595580101,
+ 0.07248847931623459,
+ 0.07269425690174103,
+ 0.07293228060007095,
+ 0.07321640849113464,
+ 0.07350985705852509,
+ 0.07376488298177719,
+ 0.07398760318756104,
+ 0.07418309897184372,
+ 0.07432902604341507,
+ 0.07444106787443161,
+ 0.07447836548089981,
+ 0.07445048540830612,
+ 0.07439219206571579,
+ 0.07432370632886887,
+ 0.07425418496131897,
+ 0.07418230921030045,
+ 0.07408451288938522,
+ 0.07399193197488785,
+ 0.07395028322935104,
+ 0.07394849509000778,
+ 0.07398147135972977,
+ 0.07405049353837967,
+ 0.07415686547756195,
+ 0.07429928332567215,
+ 0.07450751960277557,
+ 0.07477058470249176,
+ 0.07503688335418701,
+ 0.07529116421937943,
+ 0.07555389404296875,
+ 0.07582881301641464,
+ 0.07608595490455627,
+ 0.07633038610219955,
+ 0.07655110210180283,
+ 0.07674430310726166,
+ 0.07692350447177887,
+ 0.07708189636468887,
+ 0.07719744741916656,
+ 0.07726370543241501,
+ 0.07733400911092758,
+ 0.07741878181695938,
+ 0.07750554382801056,
+ 0.07759186625480652,
+ 0.07771757245063782,
+ 0.07787499576807022,
+ 0.07805647701025009,
+ 0.07827889919281006,
+ 0.07854478061199188,
+ 0.07882186025381088,
+ 0.07910038530826569,
+ 0.0793849304318428,
+ 0.07969558238983154,
+ 0.08002141863107681,
+ 0.0803421139717102,
+ 0.08062747865915298,
+ 0.08092320710420609,
+ 0.08124533295631409
+ ],
+ "train_accuracy": [
+ 0.13571429252624512,
+ 0.2142857164144516,
+ 0.3857142925262451,
+ 0.4000000059604645,
+ 0.48571428656578064,
+ 0.5071428418159485,
+ 0.5214285850524902,
+ 0.5285714268684387,
+ 0.5714285969734192,
+ 0.6142857074737549,
+ 0.6142857074737549,
+ 0.7071428298950195,
+ 0.8714285492897034,
+ 0.8785714507102966,
+ 0.8857142925262451,
+ 0.9214285612106323,
+ 0.9214285612106323,
+ 0.9285714030265808,
+ 0.949999988079071,
+ 0.9214285612106323,
+ 0.9357143044471741,
+ 0.9428571462631226,
+ 0.949999988079071,
+ 0.9357143044471741,
+ 0.9428571462631226,
+ 0.9285714030265808,
+ 0.9428571462631226,
+ 0.949999988079071,
+ 0.9571428298950195,
+ 0.9428571462631226,
+ 0.9642857313156128,
+ 0.9214285612106323,
+ 0.9285714030265808,
+ 0.9357143044471741,
+ 0.9214285612106323,
+ 0.9071428775787354,
+ 0.9214285612106323,
+ 0.8571428656578064,
+ 0.9214285612106323,
+ 0.8357142806053162,
+ 0.8571428656578064,
+ 0.8999999761581421,
+ 0.9071428775787354,
+ 0.8999999761581421,
+ 0.8714285492897034,
+ 0.9357143044471741,
+ 0.9285714030265808,
+ 0.9357143044471741,
+ 0.9571428298950195,
+ 0.9714285731315613,
+ 0.9642857313156128,
+ 0.9642857313156128,
+ 0.9714285731315613,
+ 0.9857142567634583,
+ 0.9928571581840515,
+ 0.9928571581840515,
+ 0.9857142567634583,
+ 0.9785714149475098,
+ 0.9785714149475098,
+ 0.9785714149475098,
+ 0.9857142567634583,
+ 0.9714285731315613,
+ 0.9785714149475098,
+ 0.9857142567634583,
+ 1.0,
+ 0.9928571581840515,
+ 0.9928571581840515,
+ 0.9928571581840515,
+ 0.9928571581840515,
+ 1.0,
+ 0.9857142567634583,
+ 0.9857142567634583,
+ 0.9857142567634583,
+ 0.9928571581840515,
+ 0.9928571581840515,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 0.9928571581840515,
+ 0.9928571581840515,
+ 0.9928571581840515,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "validation_accuracy": [
+ 0.15600000321865082,
+ null,
+ null,
+ null,
+ null,
+ 0.3580000102519989,
+ null,
+ null,
+ null,
+ null,
+ 0.515999972820282,
+ null,
+ null,
+ null,
+ null,
+ 0.7099999785423279,
+ null,
+ null,
+ null,
+ null,
+ 0.7480000257492065,
+ null,
+ null,
+ null,
+ null,
+ 0.7400000095367432,
+ null,
+ null,
+ null,
+ null,
+ 0.7160000205039978,
+ null,
+ null,
+ null,
+ null,
+ 0.7480000257492065,
+ null,
+ null,
+ null,
+ null,
+ 0.6660000085830688,
+ null,
+ null,
+ null,
+ null,
+ 0.7120000123977661,
+ null,
+ null,
+ null,
+ null,
+ 0.7020000219345093,
+ null,
+ null,
+ null,
+ null,
+ 0.7319999933242798,
+ null,
+ null,
+ null,
+ null,
+ 0.7519999742507935,
+ null,
+ null,
+ null,
+ null,
+ 0.7059999704360962,
+ null,
+ null,
+ null,
+ null,
+ 0.7580000162124634,
+ null,
+ null,
+ null,
+ null,
+ 0.7599999904632568,
+ null,
+ null,
+ null,
+ null,
+ 0.7379999756813049,
+ null,
+ null,
+ null,
+ null,
+ 0.7699999809265137,
+ null,
+ null,
+ null,
+ null,
+ 0.7379999756813049,
+ null,
+ null,
+ null,
+ null,
+ 0.7799999713897705,
+ null,
+ null,
+ null,
+ null,
+ 0.765999972820282,
+ null,
+ null,
+ null,
+ null,
+ 0.7699999809265137,
+ null,
+ null,
+ null,
+ null,
+ 0.777999997138977,
+ null,
+ null,
+ null,
+ null,
+ 0.7680000066757202,
+ null,
+ null,
+ null,
+ null,
+ 0.7720000147819519,
+ null,
+ null,
+ null,
+ null,
+ 0.7680000066757202,
+ null,
+ null,
+ null,
+ null,
+ 0.7639999985694885,
+ null,
+ null,
+ null,
+ null,
+ 0.7620000243186951,
+ null,
+ null,
+ null,
+ null,
+ 0.7699999809265137,
+ null,
+ null,
+ null,
+ null,
+ 0.7699999809265137,
+ null,
+ null,
+ null,
+ null,
+ 0.7699999809265137,
+ null,
+ null,
+ null,
+ null,
+ 0.7699999809265137,
+ null,
+ null,
+ null,
+ null,
+ 0.7720000147819519,
+ null,
+ null,
+ null,
+ null,
+ 0.7739999890327454,
+ null,
+ null,
+ null,
+ null,
+ 0.7720000147819519,
+ null,
+ null,
+ null,
+ null,
+ 0.7760000228881836,
+ null,
+ null,
+ null,
+ null,
+ 0.7760000228881836,
+ null,
+ null,
+ null,
+ null,
+ 0.7799999713897705,
+ null,
+ null,
+ null,
+ null,
+ 0.7799999713897705,
+ null,
+ null,
+ null,
+ null,
+ 0.7839999794960022,
+ null,
+ null,
+ null,
+ 0.7820000052452087
+ ],
+ "test_accuracy": [
+ 0.1550000011920929,
+ null,
+ null,
+ null,
+ null,
+ 0.3490000069141388,
+ null,
+ null,
+ null,
+ null,
+ 0.5090000033378601,
+ null,
+ null,
+ null,
+ null,
+ 0.7429999709129333,
+ null,
+ null,
+ null,
+ null,
+ 0.7200000286102295,
+ null,
+ null,
+ null,
+ null,
+ 0.765999972820282,
+ null,
+ null,
+ null,
+ null,
+ 0.7710000276565552,
+ null,
+ null,
+ null,
+ null,
+ 0.7749999761581421,
+ null,
+ null,
+ null,
+ null,
+ 0.6600000262260437,
+ null,
+ null,
+ null,
+ null,
+ 0.7789999842643738,
+ null,
+ null,
+ null,
+ null,
+ 0.7120000123977661,
+ null,
+ null,
+ null,
+ null,
+ 0.7570000290870667,
+ null,
+ null,
+ null,
+ null,
+ 0.7630000114440918,
+ null,
+ null,
+ null,
+ null,
+ 0.7369999885559082,
+ null,
+ null,
+ null,
+ null,
+ 0.765999972820282,
+ null,
+ null,
+ null,
+ null,
+ 0.7609999775886536,
+ null,
+ null,
+ null,
+ null,
+ 0.7490000128746033,
+ null,
+ null,
+ null,
+ null,
+ 0.7609999775886536,
+ null,
+ null,
+ null,
+ null,
+ 0.7440000176429749,
+ null,
+ null,
+ null,
+ null,
+ 0.7590000033378601,
+ null,
+ null,
+ null,
+ null,
+ 0.7580000162124634,
+ null,
+ null,
+ null,
+ null,
+ 0.753000020980835,
+ null,
+ null,
+ null,
+ null,
+ 0.7540000081062317,
+ null,
+ null,
+ null,
+ null,
+ 0.7519999742507935,
+ null,
+ null,
+ null,
+ null,
+ 0.7580000162124634,
+ null,
+ null,
+ null,
+ null,
+ 0.753000020980835,
+ null,
+ null,
+ null,
+ null,
+ 0.7540000081062317,
+ null,
+ null,
+ null,
+ null,
+ 0.7559999823570251,
+ null,
+ null,
+ null,
+ null,
+ 0.7599999904632568,
+ null,
+ null,
+ null,
+ null,
+ 0.7590000033378601,
+ null,
+ null,
+ null,
+ null,
+ 0.7599999904632568,
+ null,
+ null,
+ null,
+ null,
+ 0.7630000114440918,
+ null,
+ null,
+ null,
+ null,
+ 0.765999972820282,
+ null,
+ null,
+ null,
+ null,
+ 0.765999972820282,
+ null,
+ null,
+ null,
+ null,
+ 0.7680000066757202,
+ null,
+ null,
+ null,
+ null,
+ 0.7699999809265137,
+ null,
+ null,
+ null,
+ null,
+ 0.7689999938011169,
+ null,
+ null,
+ null,
+ null,
+ 0.7670000195503235,
+ null,
+ null,
+ null,
+ null,
+ 0.765999972820282,
+ null,
+ null,
+ null,
+ null,
+ 0.7699999809265137,
+ null,
+ null,
+ null,
+ 0.7699999809265137
+ ]
+ }
+ },
+ {
+ "seed": 2,
+ "method": "BP",
+ "result": {
+ "best_validation_accuracy": 0.6959999799728394,
+ "test_accuracy_at_validation_peak": 0.6880000233650208,
+ "best_epoch": 165,
+ "final_train_loss": 0.0029619340784847736,
+ "final_train_accuracy": 1.0
+ },
+ "history": {
+ "train_loss": [
+ 1.9458681344985962,
+ 1.9453206062316895,
+ 1.9447771310806274,
+ 1.943881630897522,
+ 1.9423326253890991,
+ 1.9392350912094116,
+ 1.9323722124099731,
+ 1.9179916381835938,
+ 1.888519525527954,
+ 1.8364351987838745,
+ 1.7595080137252808,
+ 1.6583768129348755,
+ 1.5324983596801758,
+ 1.3977420330047607,
+ 1.2954875230789185,
+ 1.2060627937316895,
+ 1.0913913249969482,
+ 1.0173896551132202,
+ 1.0041992664337158,
+ 0.9709844589233398,
+ 0.8240172863006592,
+ 0.8306403160095215,
+ 0.8292332887649536,
+ 0.7336467504501343,
+ 0.6404102444648743,
+ 0.6392682194709778,
+ 0.5670160055160522,
+ 0.5074000954627991,
+ 0.47107958793640137,
+ 0.4670189917087555,
+ 0.39768555760383606,
+ 0.3525322675704956,
+ 0.3546525835990906,
+ 0.29220694303512573,
+ 0.24403618276119232,
+ 0.20660048723220825,
+ 0.20959466695785522,
+ 0.2991301119327545,
+ 0.7961766719818115,
+ 0.6157392859458923,
+ 0.13594496250152588,
+ 0.3368400037288666,
+ 0.16185835003852844,
+ 0.16379770636558533,
+ 0.22459492087364197,
+ 0.15214239060878754,
+ 0.16184163093566895,
+ 0.15529227256774902,
+ 0.11480414867401123,
+ 0.10978127270936966,
+ 0.11690033227205276,
+ 0.08214520663022995,
+ 0.08353253453969955,
+ 0.089408278465271,
+ 0.0714857205748558,
+ 0.05802242457866669,
+ 0.05843034386634827,
+ 0.05466533824801445,
+ 0.04183757305145264,
+ 0.03538341820240021,
+ 0.04032349959015846,
+ 0.03800634294748306,
+ 0.028339138254523277,
+ 0.02575778029859066,
+ 0.027427183464169502,
+ 0.02605382725596428,
+ 0.02214139886200428,
+ 0.01943008415400982,
+ 0.019308442249894142,
+ 0.018659204244613647,
+ 0.016609223559498787,
+ 0.015432826243340969,
+ 0.015048518776893616,
+ 0.01453104056417942,
+ 0.013568831607699394,
+ 0.01279075164347887,
+ 0.012013362720608711,
+ 0.011340633034706116,
+ 0.011249641887843609,
+ 0.010899513028562069,
+ 0.010109437629580498,
+ 0.009702284820377827,
+ 0.009859495796263218,
+ 0.009957442060112953,
+ 0.009485440328717232,
+ 0.008981387130916119,
+ 0.00892586912959814,
+ 0.009055068716406822,
+ 0.008917734026908875,
+ 0.008661660365760326,
+ 0.008630131371319294,
+ 0.008735750801861286,
+ 0.008716454729437828,
+ 0.008567679673433304,
+ 0.008460626006126404,
+ 0.008474151603877544,
+ 0.008436348289251328,
+ 0.008336101658642292,
+ 0.008307644166052341,
+ 0.008318508043885231,
+ 0.008257385343313217,
+ 0.00813703890889883,
+ 0.008092965930700302,
+ 0.008057969622313976,
+ 0.007912124507129192,
+ 0.007807997986674309,
+ 0.007734346203505993,
+ 0.007560931146144867,
+ 0.007379134185612202,
+ 0.00715870363637805,
+ 0.006953955627977848,
+ 0.006677772384136915,
+ 0.006420440506190062,
+ 0.006171204149723053,
+ 0.0058857896365225315,
+ 0.0056123086251318455,
+ 0.005337849725037813,
+ 0.0050886585377156734,
+ 0.004832160659134388,
+ 0.00459428783506155,
+ 0.004372581373900175,
+ 0.004167978186160326,
+ 0.003983148839324713,
+ 0.0038211375940591097,
+ 0.003676780266687274,
+ 0.0035329803358763456,
+ 0.0034212416503578424,
+ 0.0033247889950871468,
+ 0.0032605708111077547,
+ 0.0032138836104422808,
+ 0.0031649332959204912,
+ 0.0031348851043730974,
+ 0.003124399110674858,
+ 0.003121866611763835,
+ 0.003138733096420765,
+ 0.003139830892905593,
+ 0.003151324577629566,
+ 0.003145790658891201,
+ 0.003156741615384817,
+ 0.0031833606772124767,
+ 0.0032192610669881105,
+ 0.0033021459821611643,
+ 0.003320711897686124,
+ 0.0032885167747735977,
+ 0.003262635786086321,
+ 0.003335873829200864,
+ 0.0033696985337883234,
+ 0.003298870986327529,
+ 0.0033332856837660074,
+ 0.003453037003055215,
+ 0.003369833342730999,
+ 0.0033405350986868143,
+ 0.003418640699237585,
+ 0.0033881987910717726,
+ 0.003352362895384431,
+ 0.003387290984392166,
+ 0.003384575480595231,
+ 0.0033599617891013622,
+ 0.0033759933430701494,
+ 0.0033776238560676575,
+ 0.0033567019272595644,
+ 0.003347113961353898,
+ 0.0033564588520675898,
+ 0.003352509578689933,
+ 0.0033195370342582464,
+ 0.0033111260272562504,
+ 0.0033282781951129436,
+ 0.003318522125482559,
+ 0.0032838284969329834,
+ 0.0032690358348190784,
+ 0.003270390210673213,
+ 0.003265863051638007,
+ 0.0032207223121076822,
+ 0.0032000248320400715,
+ 0.0031913607381284237,
+ 0.0031860102899372578,
+ 0.0031670595053583384,
+ 0.0031403081957250834,
+ 0.0031195259653031826,
+ 0.0031212109606713057,
+ 0.0031118243932724,
+ 0.0030975891277194023,
+ 0.0030737619381397963,
+ 0.0030599618330597878,
+ 0.003056872636079788,
+ 0.0030443372670561075,
+ 0.0030357104260474443,
+ 0.0030219205655157566,
+ 0.003012879053130746,
+ 0.003005437785759568,
+ 0.0029972223564982414,
+ 0.00298754358664155,
+ 0.0029809800907969475,
+ 0.00297661405056715,
+ 0.0029686333145946264,
+ 0.0029667022172361612,
+ 0.002964244456961751,
+ 0.00296014710329473,
+ 0.002958135213702917,
+ 0.0029619340784847736
+ ],
+ "train_accuracy": [
+ 0.13571429252624512,
+ 0.16428571939468384,
+ 0.18571428954601288,
+ 0.18571428954601288,
+ 0.19285714626312256,
+ 0.1428571492433548,
+ 0.17142857611179352,
+ 0.20000000298023224,
+ 0.2571428716182709,
+ 0.20714285969734192,
+ 0.2928571403026581,
+ 0.37857142090797424,
+ 0.3499999940395355,
+ 0.3214285671710968,
+ 0.4000000059604645,
+ 0.3571428656578064,
+ 0.48571428656578064,
+ 0.5071428418159485,
+ 0.5,
+ 0.5571428537368774,
+ 0.6857143044471741,
+ 0.5214285850524902,
+ 0.5642856955528259,
+ 0.6785714030265808,
+ 0.7857142686843872,
+ 0.7785714268684387,
+ 0.7571428418159485,
+ 0.8142856955528259,
+ 0.8214285969734192,
+ 0.8071428537368774,
+ 0.8214285969734192,
+ 0.9214285612106323,
+ 0.8571428656578064,
+ 0.9285714030265808,
+ 0.949999988079071,
+ 0.9571428298950195,
+ 0.9428571462631226,
+ 0.8571428656578064,
+ 0.7071428298950195,
+ 0.699999988079071,
+ 0.9714285731315613,
+ 0.8571428656578064,
+ 0.9571428298950195,
+ 0.949999988079071,
+ 0.9214285612106323,
+ 0.949999988079071,
+ 0.9428571462631226,
+ 0.9714285731315613,
+ 0.9642857313156128,
+ 0.9714285731315613,
+ 0.9642857313156128,
+ 0.9785714149475098,
+ 0.9857142567634583,
+ 0.9714285731315613,
+ 0.9857142567634583,
+ 0.9785714149475098,
+ 0.9785714149475098,
+ 0.9785714149475098,
+ 0.9928571581840515,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 0.9928571581840515,
+ 0.9928571581840515,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "validation_accuracy": [
+ 0.1379999965429306,
+ null,
+ null,
+ null,
+ null,
+ 0.12800000607967377,
+ null,
+ null,
+ null,
+ null,
+ 0.27799999713897705,
+ null,
+ null,
+ null,
+ null,
+ 0.38199999928474426,
+ null,
+ null,
+ null,
+ null,
+ 0.3799999952316284,
+ null,
+ null,
+ null,
+ null,
+ 0.5580000281333923,
+ null,
+ null,
+ null,
+ null,
+ 0.6060000061988831,
+ null,
+ null,
+ null,
+ null,
+ 0.656000018119812,
+ null,
+ null,
+ null,
+ null,
+ 0.550000011920929,
+ null,
+ null,
+ null,
+ null,
+ 0.6499999761581421,
+ null,
+ null,
+ null,
+ null,
+ 0.6919999718666077,
+ null,
+ null,
+ null,
+ null,
+ 0.656000018119812,
+ null,
+ null,
+ null,
+ null,
+ 0.6600000262260437,
+ null,
+ null,
+ null,
+ null,
+ 0.6579999923706055,
+ null,
+ null,
+ null,
+ null,
+ 0.6499999761581421,
+ null,
+ null,
+ null,
+ null,
+ 0.656000018119812,
+ null,
+ null,
+ null,
+ null,
+ 0.6679999828338623,
+ null,
+ null,
+ null,
+ null,
+ 0.6660000085830688,
+ null,
+ null,
+ null,
+ null,
+ 0.6660000085830688,
+ null,
+ null,
+ null,
+ null,
+ 0.6639999747276306,
+ null,
+ null,
+ null,
+ null,
+ 0.6639999747276306,
+ null,
+ null,
+ null,
+ null,
+ 0.6600000262260437,
+ null,
+ null,
+ null,
+ null,
+ 0.6620000004768372,
+ null,
+ null,
+ null,
+ null,
+ 0.6679999828338623,
+ null,
+ null,
+ null,
+ null,
+ 0.6759999990463257,
+ null,
+ null,
+ null,
+ null,
+ 0.6800000071525574,
+ null,
+ null,
+ null,
+ null,
+ 0.6859999895095825,
+ null,
+ null,
+ null,
+ null,
+ 0.6880000233650208,
+ null,
+ null,
+ null,
+ null,
+ 0.6940000057220459,
+ null,
+ null,
+ null,
+ null,
+ 0.6940000057220459,
+ null,
+ null,
+ null,
+ null,
+ 0.6919999718666077,
+ null,
+ null,
+ null,
+ null,
+ 0.6899999976158142,
+ null,
+ null,
+ null,
+ null,
+ 0.6919999718666077,
+ null,
+ null,
+ null,
+ null,
+ 0.6959999799728394,
+ null,
+ null,
+ null,
+ null,
+ 0.6940000057220459,
+ null,
+ null,
+ null,
+ null,
+ 0.6899999976158142,
+ null,
+ null,
+ null,
+ null,
+ 0.6880000233650208,
+ null,
+ null,
+ null,
+ null,
+ 0.6840000152587891,
+ null,
+ null,
+ null,
+ null,
+ 0.6819999814033508,
+ null,
+ null,
+ null,
+ null,
+ 0.6819999814033508,
+ null,
+ null,
+ null,
+ 0.6819999814033508
+ ],
+ "test_accuracy": [
+ 0.1340000033378601,
+ null,
+ null,
+ null,
+ null,
+ 0.13600000739097595,
+ null,
+ null,
+ null,
+ null,
+ 0.2930000126361847,
+ null,
+ null,
+ null,
+ null,
+ 0.3840000033378601,
+ null,
+ null,
+ null,
+ null,
+ 0.38499999046325684,
+ null,
+ null,
+ null,
+ null,
+ 0.5529999732971191,
+ null,
+ null,
+ null,
+ null,
+ 0.6259999871253967,
+ null,
+ null,
+ null,
+ null,
+ 0.6420000195503235,
+ null,
+ null,
+ null,
+ null,
+ 0.5770000219345093,
+ null,
+ null,
+ null,
+ null,
+ 0.6769999861717224,
+ null,
+ null,
+ null,
+ null,
+ 0.6940000057220459,
+ null,
+ null,
+ null,
+ null,
+ 0.6779999732971191,
+ null,
+ null,
+ null,
+ null,
+ 0.6740000247955322,
+ null,
+ null,
+ null,
+ null,
+ 0.6779999732971191,
+ null,
+ null,
+ null,
+ null,
+ 0.6700000166893005,
+ null,
+ null,
+ null,
+ null,
+ 0.6639999747276306,
+ null,
+ null,
+ null,
+ null,
+ 0.6740000247955322,
+ null,
+ null,
+ null,
+ null,
+ 0.675000011920929,
+ null,
+ null,
+ null,
+ null,
+ 0.6710000038146973,
+ null,
+ null,
+ null,
+ null,
+ 0.6660000085830688,
+ null,
+ null,
+ null,
+ null,
+ 0.6650000214576721,
+ null,
+ null,
+ null,
+ null,
+ 0.6600000262260437,
+ null,
+ null,
+ null,
+ null,
+ 0.6679999828338623,
+ null,
+ null,
+ null,
+ null,
+ 0.6660000085830688,
+ null,
+ null,
+ null,
+ null,
+ 0.6790000200271606,
+ null,
+ null,
+ null,
+ null,
+ 0.6779999732971191,
+ null,
+ null,
+ null,
+ null,
+ 0.6809999942779541,
+ null,
+ null,
+ null,
+ null,
+ 0.6819999814033508,
+ null,
+ null,
+ null,
+ null,
+ 0.6840000152587891,
+ null,
+ null,
+ null,
+ null,
+ 0.6850000023841858,
+ null,
+ null,
+ null,
+ null,
+ 0.6899999976158142,
+ null,
+ null,
+ null,
+ null,
+ 0.6919999718666077,
+ null,
+ null,
+ null,
+ null,
+ 0.6890000104904175,
+ null,
+ null,
+ null,
+ null,
+ 0.6880000233650208,
+ null,
+ null,
+ null,
+ null,
+ 0.6869999766349792,
+ null,
+ null,
+ null,
+ null,
+ 0.6830000281333923,
+ null,
+ null,
+ null,
+ null,
+ 0.6840000152587891,
+ null,
+ null,
+ null,
+ null,
+ 0.6830000281333923,
+ null,
+ null,
+ null,
+ null,
+ 0.6830000281333923,
+ null,
+ null,
+ null,
+ null,
+ 0.6819999814033508,
+ null,
+ null,
+ null,
+ 0.6840000152587891
+ ]
+ }
+ },
+ {
+ "seed": 2,
+ "method": "KAFT",
+ "result": {
+ "best_validation_accuracy": 0.8100000023841858,
+ "test_accuracy_at_validation_peak": 0.7940000295639038,
+ "best_epoch": 105,
+ "final_train_loss": 0.08612638711929321,
+ "final_train_accuracy": 1.0
+ },
+ "history": {
+ "train_loss": [
+ 1.9458681344985962,
+ 1.9454479217529297,
+ 1.9444538354873657,
+ 1.9417024850845337,
+ 1.9351882934570312,
+ 1.92147958278656,
+ 1.8949776887893677,
+ 1.8465231657028198,
+ 1.7640355825424194,
+ 1.6404554843902588,
+ 1.4729236364364624,
+ 1.258646011352539,
+ 1.0220487117767334,
+ 0.8043339252471924,
+ 0.5980220437049866,
+ 0.4449666142463684,
+ 0.3416220247745514,
+ 0.2613144516944885,
+ 0.23064929246902466,
+ 0.19614113867282867,
+ 0.1565822809934616,
+ 0.14034810662269592,
+ 0.12310431152582169,
+ 0.09524121135473251,
+ 0.09632627665996552,
+ 0.0822078064084053,
+ 0.06245448812842369,
+ 0.07715088129043579,
+ 0.08818095177412033,
+ 0.05790106952190399,
+ 0.10160153359174728,
+ 0.06409977376461029,
+ 0.07256277650594711,
+ 0.07666979730129242,
+ 0.054826296865940094,
+ 0.06244348734617233,
+ 0.06817369163036346,
+ 0.08452975004911423,
+ 0.04655420780181885,
+ 0.10066910833120346,
+ 0.060909830033779144,
+ 0.06561968475580215,
+ 0.057907234877347946,
+ 0.0648990273475647,
+ 0.06559283286333084,
+ 0.05002928525209427,
+ 0.0674375370144844,
+ 0.061249036341905594,
+ 0.07455016672611237,
+ 0.05598131939768791,
+ 0.06622612476348877,
+ 0.07605484127998352,
+ 0.05546135455369949,
+ 0.06712831556797028,
+ 0.06765151023864746,
+ 0.061972107738256454,
+ 0.07032469660043716,
+ 0.06338812410831451,
+ 0.07420895248651505,
+ 0.0727803036570549,
+ 0.0689079612493515,
+ 0.08143617957830429,
+ 0.07475729286670685,
+ 0.07771146297454834,
+ 0.0807262733578682,
+ 0.07466446608304977,
+ 0.08282274752855301,
+ 0.07464516907930374,
+ 0.07169142365455627,
+ 0.07816226035356522,
+ 0.07387734204530716,
+ 0.07481706142425537,
+ 0.07989316433668137,
+ 0.07333817332983017,
+ 0.0795072466135025,
+ 0.07782670110464096,
+ 0.07436338067054749,
+ 0.08134360611438751,
+ 0.07540920376777649,
+ 0.07698261737823486,
+ 0.0789143443107605,
+ 0.07590901851654053,
+ 0.0810367688536644,
+ 0.07807218283414841,
+ 0.07481616735458374,
+ 0.0793713927268982,
+ 0.07476254552602768,
+ 0.07607170939445496,
+ 0.07924406975507736,
+ 0.07353135198354721,
+ 0.07799628376960754,
+ 0.076716847717762,
+ 0.07542578130960464,
+ 0.07972463220357895,
+ 0.0741831511259079,
+ 0.07664717733860016,
+ 0.0755501538515091,
+ 0.07498300075531006,
+ 0.07844091951847076,
+ 0.07392465323209763,
+ 0.07630109786987305,
+ 0.07549698650836945,
+ 0.07407153397798538,
+ 0.07680924236774445,
+ 0.07321382313966751,
+ 0.07437234371900558,
+ 0.07377327978610992,
+ 0.07359518855810165,
+ 0.07476513832807541,
+ 0.07286085933446884,
+ 0.07386958599090576,
+ 0.07278510183095932,
+ 0.07309570908546448,
+ 0.07320892065763474,
+ 0.07248430699110031,
+ 0.07298212498426437,
+ 0.07238015532493591,
+ 0.07300197333097458,
+ 0.07279986888170242,
+ 0.0728028193116188,
+ 0.07290536910295486,
+ 0.07281801104545593,
+ 0.07310181856155396,
+ 0.07317625731229782,
+ 0.07330421358346939,
+ 0.07356105744838715,
+ 0.07370833307504654,
+ 0.07400409132242203,
+ 0.07399053126573563,
+ 0.07418448477983475,
+ 0.07438162714242935,
+ 0.07473568618297577,
+ 0.07500158995389938,
+ 0.07514598965644836,
+ 0.07533856481313705,
+ 0.07550375163555145,
+ 0.07576654106378555,
+ 0.0759568065404892,
+ 0.07623017579317093,
+ 0.0764547735452652,
+ 0.07663887739181519,
+ 0.07682541012763977,
+ 0.07700479030609131,
+ 0.07724055647850037,
+ 0.07739630341529846,
+ 0.07757385820150375,
+ 0.07771138846874237,
+ 0.07792378962039948,
+ 0.07808876782655716,
+ 0.07829367369413376,
+ 0.07845897972583771,
+ 0.07863199710845947,
+ 0.0787820965051651,
+ 0.07896022498607635,
+ 0.07913433015346527,
+ 0.07929732650518417,
+ 0.07944682240486145,
+ 0.07960760593414307,
+ 0.0797756165266037,
+ 0.07996322214603424,
+ 0.08015352487564087,
+ 0.08033785223960876,
+ 0.08050888031721115,
+ 0.08067726343870163,
+ 0.08085254579782486,
+ 0.08102409541606903,
+ 0.08118825405836105,
+ 0.08135084062814713,
+ 0.08152300864458084,
+ 0.08170820027589798,
+ 0.08189962059259415,
+ 0.08207162469625473,
+ 0.08222981542348862,
+ 0.08239062130451202,
+ 0.08255768567323685,
+ 0.08272306621074677,
+ 0.08287455141544342,
+ 0.0830283910036087,
+ 0.08319081366062164,
+ 0.08336582779884338,
+ 0.08353972434997559,
+ 0.0836765393614769,
+ 0.08381855487823486,
+ 0.08398516476154327,
+ 0.08414240926504135,
+ 0.08428412675857544,
+ 0.08442343771457672,
+ 0.08456338196992874,
+ 0.0846991166472435,
+ 0.08486489206552505,
+ 0.0850261002779007,
+ 0.08515828102827072,
+ 0.08527068048715591,
+ 0.08538524061441422,
+ 0.08552666753530502,
+ 0.08565535396337509,
+ 0.08576308935880661,
+ 0.08586840331554413,
+ 0.08598379790782928,
+ 0.08612638711929321
+ ],
+ "train_accuracy": [
+ 0.13571429252624512,
+ 0.15000000596046448,
+ 0.26428571343421936,
+ 0.4928571283817291,
+ 0.6142857074737549,
+ 0.6499999761581421,
+ 0.5714285969734192,
+ 0.48571428656578064,
+ 0.5214285850524902,
+ 0.5428571701049805,
+ 0.6000000238418579,
+ 0.6785714030265808,
+ 0.8714285492897034,
+ 0.8571428656578064,
+ 0.8999999761581421,
+ 0.9214285612106323,
+ 0.9142857193946838,
+ 0.9357143044471741,
+ 0.9214285612106323,
+ 0.9285714030265808,
+ 0.949999988079071,
+ 0.9571428298950195,
+ 0.9714285731315613,
+ 0.9642857313156128,
+ 0.949999988079071,
+ 0.9714285731315613,
+ 0.9857142567634583,
+ 0.9785714149475098,
+ 0.9642857313156128,
+ 0.9714285731315613,
+ 0.9642857313156128,
+ 0.9857142567634583,
+ 0.9714285731315613,
+ 0.9785714149475098,
+ 0.9857142567634583,
+ 0.9785714149475098,
+ 0.9714285731315613,
+ 0.9785714149475098,
+ 0.9928571581840515,
+ 0.9571428298950195,
+ 0.9785714149475098,
+ 0.9714285731315613,
+ 0.9928571581840515,
+ 0.9785714149475098,
+ 0.9785714149475098,
+ 1.0,
+ 0.9857142567634583,
+ 0.9857142567634583,
+ 0.9785714149475098,
+ 1.0,
+ 0.9857142567634583,
+ 0.9857142567634583,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 0.9928571581840515,
+ 1.0,
+ 0.9785714149475098,
+ 0.9928571581840515,
+ 1.0,
+ 0.9928571581840515,
+ 1.0,
+ 0.9928571581840515,
+ 0.9857142567634583,
+ 0.9928571581840515,
+ 0.9928571581840515,
+ 0.9928571581840515,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 0.9928571581840515,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 0.9928571581840515,
+ 0.9857142567634583,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 0.9928571581840515,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 0.9928571581840515,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "validation_accuracy": [
+ 0.12399999797344208,
+ null,
+ null,
+ null,
+ null,
+ 0.4059999883174896,
+ null,
+ null,
+ null,
+ null,
+ 0.46399998664855957,
+ null,
+ null,
+ null,
+ null,
+ 0.7860000133514404,
+ null,
+ null,
+ null,
+ null,
+ 0.7799999713897705,
+ null,
+ null,
+ null,
+ null,
+ 0.7799999713897705,
+ null,
+ null,
+ null,
+ null,
+ 0.7680000066757202,
+ null,
+ null,
+ null,
+ null,
+ 0.7720000147819519,
+ null,
+ null,
+ null,
+ null,
+ 0.7559999823570251,
+ null,
+ null,
+ null,
+ null,
+ 0.7419999837875366,
+ null,
+ null,
+ null,
+ null,
+ 0.7760000228881836,
+ null,
+ null,
+ null,
+ null,
+ 0.7519999742507935,
+ null,
+ null,
+ null,
+ null,
+ 0.7699999809265137,
+ null,
+ null,
+ null,
+ null,
+ 0.7940000295639038,
+ null,
+ null,
+ null,
+ null,
+ 0.7820000052452087,
+ null,
+ null,
+ null,
+ null,
+ 0.7940000295639038,
+ null,
+ null,
+ null,
+ null,
+ 0.800000011920929,
+ null,
+ null,
+ null,
+ null,
+ 0.7940000295639038,
+ null,
+ null,
+ null,
+ null,
+ 0.7979999780654907,
+ null,
+ null,
+ null,
+ null,
+ 0.8059999942779541,
+ null,
+ null,
+ null,
+ null,
+ 0.8019999861717224,
+ null,
+ null,
+ null,
+ null,
+ 0.8100000023841858,
+ null,
+ null,
+ null,
+ null,
+ 0.8100000023841858,
+ null,
+ null,
+ null,
+ null,
+ 0.8080000281333923,
+ null,
+ null,
+ null,
+ null,
+ 0.8040000200271606,
+ null,
+ null,
+ null,
+ null,
+ 0.8040000200271606,
+ null,
+ null,
+ null,
+ null,
+ 0.7979999780654907,
+ null,
+ null,
+ null,
+ null,
+ 0.7960000038146973,
+ null,
+ null,
+ null,
+ null,
+ 0.800000011920929,
+ null,
+ null,
+ null,
+ null,
+ 0.800000011920929,
+ null,
+ null,
+ null,
+ null,
+ 0.8019999861717224,
+ null,
+ null,
+ null,
+ null,
+ 0.8019999861717224,
+ null,
+ null,
+ null,
+ null,
+ 0.8019999861717224,
+ null,
+ null,
+ null,
+ null,
+ 0.7979999780654907,
+ null,
+ null,
+ null,
+ null,
+ 0.800000011920929,
+ null,
+ null,
+ null,
+ null,
+ 0.800000011920929,
+ null,
+ null,
+ null,
+ null,
+ 0.800000011920929,
+ null,
+ null,
+ null,
+ null,
+ 0.800000011920929,
+ null,
+ null,
+ null,
+ null,
+ 0.800000011920929,
+ null,
+ null,
+ null,
+ null,
+ 0.800000011920929,
+ null,
+ null,
+ null,
+ 0.8019999861717224
+ ],
+ "test_accuracy": [
+ 0.1340000033378601,
+ null,
+ null,
+ null,
+ null,
+ 0.4090000092983246,
+ null,
+ null,
+ null,
+ null,
+ 0.48899999260902405,
+ null,
+ null,
+ null,
+ null,
+ 0.7739999890327454,
+ null,
+ null,
+ null,
+ null,
+ 0.7850000262260437,
+ null,
+ null,
+ null,
+ null,
+ 0.777999997138977,
+ null,
+ null,
+ null,
+ null,
+ 0.7649999856948853,
+ null,
+ null,
+ null,
+ null,
+ 0.7879999876022339,
+ null,
+ null,
+ null,
+ null,
+ 0.777999997138977,
+ null,
+ null,
+ null,
+ null,
+ 0.7639999985694885,
+ null,
+ null,
+ null,
+ null,
+ 0.7979999780654907,
+ null,
+ null,
+ null,
+ null,
+ 0.7770000100135803,
+ null,
+ null,
+ null,
+ null,
+ 0.7950000166893005,
+ null,
+ null,
+ null,
+ null,
+ 0.7929999828338623,
+ null,
+ null,
+ null,
+ null,
+ 0.7900000214576721,
+ null,
+ null,
+ null,
+ null,
+ 0.7950000166893005,
+ null,
+ null,
+ null,
+ null,
+ 0.7979999780654907,
+ null,
+ null,
+ null,
+ null,
+ 0.7910000085830688,
+ null,
+ null,
+ null,
+ null,
+ 0.7990000247955322,
+ null,
+ null,
+ null,
+ null,
+ 0.7960000038146973,
+ null,
+ null,
+ null,
+ null,
+ 0.7940000295639038,
+ null,
+ null,
+ null,
+ null,
+ 0.7940000295639038,
+ null,
+ null,
+ null,
+ null,
+ 0.7929999828338623,
+ null,
+ null,
+ null,
+ null,
+ 0.7950000166893005,
+ null,
+ null,
+ null,
+ null,
+ 0.796999990940094,
+ null,
+ null,
+ null,
+ null,
+ 0.7940000295639038,
+ null,
+ null,
+ null,
+ null,
+ 0.7910000085830688,
+ null,
+ null,
+ null,
+ null,
+ 0.7929999828338623,
+ null,
+ null,
+ null,
+ null,
+ 0.7950000166893005,
+ null,
+ null,
+ null,
+ null,
+ 0.796999990940094,
+ null,
+ null,
+ null,
+ null,
+ 0.796999990940094,
+ null,
+ null,
+ null,
+ null,
+ 0.7990000247955322,
+ null,
+ null,
+ null,
+ null,
+ 0.800000011920929,
+ null,
+ null,
+ null,
+ null,
+ 0.7979999780654907,
+ null,
+ null,
+ null,
+ null,
+ 0.800000011920929,
+ null,
+ null,
+ null,
+ null,
+ 0.8029999732971191,
+ null,
+ null,
+ null,
+ null,
+ 0.8019999861717224,
+ null,
+ null,
+ null,
+ null,
+ 0.8040000200271606,
+ null,
+ null,
+ null,
+ null,
+ 0.8050000071525574,
+ null,
+ null,
+ null,
+ null,
+ 0.8050000071525574,
+ null,
+ null,
+ null,
+ 0.8050000071525574
+ ]
+ }
+ }
+ ],
+ "gradient_diagnostics": [
+ {
+ "seed": 0,
+ "training_result": {
+ "best_validation_accuracy": 0.3160000145435333,
+ "test_accuracy_at_validation_peak": 0.34299999475479126,
+ "best_epoch": 65,
+ "final_train_loss": 1.9459097385406494,
+ "final_train_accuracy": 0.1428571492433548
+ },
+ "all_weight_gradients_exact_zero": true,
+ "weight_gradient_frobenius": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "preactivation_error_frobenius": [
+ 0.0,
+ 0.0,
+ 2.595283210852959e-20,
+ 1.0592342220039588e-17,
+ 4.019294578015481e-15,
+ 1.6807222931111698e-12,
+ 6.419248466116301e-10,
+ 2.810125181440526e-07,
+ 0.00012559315655380487,
+ 0.07824604213237762
+ ],
+ "output_adjacent_error_frobenius": 0.00012559315655380487,
+ "standardized_penultimate_probe_accuracy": 0.514,
+ "diagnostic_loss": 1.9459097385406494
+ },
+ {
+ "seed": 1,
+ "training_result": {
+ "best_validation_accuracy": 0.32600000500679016,
+ "test_accuracy_at_validation_peak": 0.289000004529953,
+ "best_epoch": 10,
+ "final_train_loss": 1.9459097385406494,
+ "final_train_accuracy": 0.1428571492433548
+ },
+ "all_weight_gradients_exact_zero": true,
+ "weight_gradient_frobenius": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "preactivation_error_frobenius": [
+ 0.0,
+ 0.0,
+ 3.367761173963376e-20,
+ 1.3237871786956696e-17,
+ 5.172728564928342e-15,
+ 2.3537578136556547e-12,
+ 9.602483252990623e-10,
+ 3.7496701565942203e-07,
+ 0.00016006706573534757,
+ 0.07824604213237762
+ ],
+ "output_adjacent_error_frobenius": 0.00016006706573534757,
+ "standardized_penultimate_probe_accuracy": 0.578,
+ "diagnostic_loss": 1.9459097385406494
+ },
+ {
+ "seed": 2,
+ "training_result": {
+ "best_validation_accuracy": 0.3160000145435333,
+ "test_accuracy_at_validation_peak": 0.3190000057220459,
+ "best_epoch": 80,
+ "final_train_loss": 1.9459097385406494,
+ "final_train_accuracy": 0.13571429252624512
+ },
+ "all_weight_gradients_exact_zero": true,
+ "weight_gradient_frobenius": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "preactivation_error_frobenius": [
+ 0.0,
+ 0.0,
+ 3.2805721368737387e-20,
+ 1.4039903627346274e-17,
+ 5.446252020739227e-15,
+ 2.1669773180715834e-12,
+ 8.829898479056908e-10,
+ 3.4699377238212037e-07,
+ 0.00014812999870628119,
+ 0.07824604213237762
+ ],
+ "output_adjacent_error_frobenius": 0.00014812999870628119,
+ "standardized_penultimate_probe_accuracy": 0.536,
+ "diagnostic_loss": 1.9459097385406494
+ }
+ ]
+} \ No newline at end of file
diff --git a/artifacts/mvp_summary.csv b/artifacts/mvp_summary.csv
new file mode 100644
index 0000000..75453c7
--- /dev/null
+++ b/artifacts/mvp_summary.csv
@@ -0,0 +1,3 @@
+method,mean_test_accuracy_percent,std_test_accuracy_percent,seeds
+BP,68.86666615804037,1.2013874199259418,3
+KAFT,78.53333353996277,1.3316675764031687,3
diff --git a/artifacts/training_curves.png b/artifacts/training_curves.png
new file mode 100644
index 0000000..a58eb79
--- /dev/null
+++ b/artifacts/training_curves.png
Binary files differ
diff --git a/kaft_mvp/__init__.py b/kaft_mvp/__init__.py
new file mode 100644
index 0000000..864ff32
--- /dev/null
+++ b/kaft_mvp/__init__.py
@@ -0,0 +1,5 @@
+"""Minimal KAFT reproduction package."""
+
+from .experiment import MVPConfig, run_mvp
+
+__all__ = ["MVPConfig", "run_mvp"]
diff --git a/kaft_mvp/data.py b/kaft_mvp/data.py
new file mode 100644
index 0000000..2f25d80
--- /dev/null
+++ b/kaft_mvp/data.py
@@ -0,0 +1,100 @@
+"""Dataset and graph-operator utilities for the MVP."""
+
+from __future__ import annotations
+
+from pathlib import Path
+from typing import Any
+from urllib.request import urlopen
+
+import torch
+import torch_geometric.transforms as transforms
+from torch_geometric.datasets import Planetoid
+
+
+PLANETOID_FILES = (
+ "x",
+ "tx",
+ "allx",
+ "y",
+ "ty",
+ "ally",
+ "graph",
+ "test.index",
+)
+
+
+def _ensure_planetoid_raw(root: str | Path, name: str) -> None:
+ """Pre-fetch from raw.githubusercontent.com to avoid a flaky redirect."""
+ raw_dir = Path(root) / name / "raw"
+ raw_dir.mkdir(parents=True, exist_ok=True)
+ lower_name = name.lower()
+ base_url = (
+ "https://raw.githubusercontent.com/kimiyoung/"
+ "planetoid/master/data"
+ )
+ for suffix in PLANETOID_FILES:
+ filename = f"ind.{lower_name}.{suffix}"
+ destination = raw_dir / filename
+ if destination.exists() and destination.stat().st_size > 0:
+ continue
+ temporary = destination.with_suffix(destination.suffix + ".part")
+ with urlopen(f"{base_url}/{filename}", timeout=60) as response:
+ temporary.write_bytes(response.read())
+ temporary.replace(destination)
+
+
+def spmm(matrix: torch.Tensor, dense: torch.Tensor) -> torch.Tensor:
+ """Multiply a native PyTorch sparse matrix by a dense matrix."""
+ return torch.sparse.mm(matrix, dense)
+
+
+def normalized_adjacency(
+ edge_index: torch.Tensor,
+ num_nodes: int,
+) -> torch.Tensor:
+ """Return A-hat = D^-1/2 (A + I) D^-1/2 as a coalesced COO tensor."""
+ row, col = edge_index
+ loops = torch.arange(num_nodes, device=edge_index.device)
+ row = torch.cat((row, loops))
+ col = torch.cat((col, loops))
+
+ degree = torch.zeros(num_nodes, device=edge_index.device)
+ degree.scatter_add_(0, row, torch.ones_like(row, dtype=torch.float32))
+ inverse_sqrt = degree.pow(-0.5)
+ inverse_sqrt.masked_fill_(torch.isinf(inverse_sqrt), 0.0)
+ values = inverse_sqrt[row] * inverse_sqrt[col]
+
+ return torch.sparse_coo_tensor(
+ torch.stack((row, col)),
+ values,
+ (num_nodes, num_nodes),
+ ).coalesce()
+
+
+def load_cora(
+ root: str | Path = "data",
+ device: str | torch.device = "cpu",
+) -> dict[str, Any]:
+ """Download Cora and return the tensors used by both training rules."""
+ _ensure_planetoid_raw(root, "Cora")
+ dataset = Planetoid(
+ root=str(root),
+ name="Cora",
+ transform=transforms.NormalizeFeatures(),
+ )
+ graph = dataset[0]
+ adjacency = normalized_adjacency(
+ graph.edge_index,
+ graph.num_nodes,
+ ).to(device)
+ return {
+ "x": graph.x.to(device),
+ "y": graph.y.to(device),
+ "adjacency": adjacency,
+ "train_mask": graph.train_mask.to(device),
+ "val_mask": graph.val_mask.to(device),
+ "test_mask": graph.test_mask.to(device),
+ "num_nodes": graph.num_nodes,
+ "num_features": dataset.num_features,
+ "num_classes": dataset.num_classes,
+ }
diff --git a/kaft_mvp/experiment.py b/kaft_mvp/experiment.py
new file mode 100644
index 0000000..f867884
--- /dev/null
+++ b/kaft_mvp/experiment.py
@@ -0,0 +1,262 @@
+"""End-to-end MVP experiment and artifact generation."""
+
+from __future__ import annotations
+
+import json
+import platform
+from dataclasses import asdict, dataclass
+from pathlib import Path
+from typing import Any
+
+import matplotlib.pyplot as plt
+import numpy as np
+import pandas as pd
+import torch
+import torch_geometric
+
+from .data import load_cora
+from .trainers import BPTrainer, KAFTTrainer, seed_everything
+
+
+@dataclass(frozen=True)
+class MVPConfig:
+ dataset: str = "Cora"
+ seeds: tuple[int, ...] = (0, 1, 2)
+ depth: int = 6
+ diagnostic_depth: int = 10
+ hidden_dim: int = 64
+ epochs: int = 200
+ diagnostic_epochs: int = 100
+ eval_every: int = 5
+ learning_rate: float = 0.01
+ weight_decay: float = 5e-4
+ diffusion_alpha: float = 0.5
+ diffusion_steps: int = 10
+ hop_cap: int = 3
+ num_probes: int = 64
+ feedback_learning_rate: float = 0.5
+ align_every: int = 10
+ device: str = "cpu"
+
+
+def _train(
+ trainer: BPTrainer | KAFTTrainer,
+ epochs: int,
+ eval_every: int,
+) -> tuple[dict[str, Any], dict[str, list[float | None]]]:
+ history: dict[str, list[float | None]] = {
+ "train_loss": [],
+ "train_accuracy": [],
+ "validation_accuracy": [],
+ "test_accuracy": [],
+ }
+ best_validation = float("-inf")
+ test_at_best_validation = float("nan")
+ best_epoch = -1
+ for epoch in range(epochs):
+ step = trainer.train_step()
+ history["train_loss"].append(step.loss)
+ history["train_accuracy"].append(step.train_accuracy)
+ if epoch % eval_every == 0 or epoch == epochs - 1:
+ validation = trainer.accuracy("val_mask")
+ test = trainer.accuracy("test_mask")
+ history["validation_accuracy"].append(validation)
+ history["test_accuracy"].append(test)
+ if validation > best_validation:
+ best_validation = validation
+ test_at_best_validation = test
+ best_epoch = epoch
+ else:
+ history["validation_accuracy"].append(None)
+ history["test_accuracy"].append(None)
+ return {
+ "best_validation_accuracy": best_validation,
+ "test_accuracy_at_validation_peak": test_at_best_validation,
+ "best_epoch": best_epoch,
+ "final_train_loss": history["train_loss"][-1],
+ "final_train_accuracy": history["train_accuracy"][-1],
+ }, history
+
+
+def _make_trainer(
+ method: str,
+ data: dict[str, Any],
+ config: MVPConfig,
+ depth: int,
+) -> BPTrainer | KAFTTrainer:
+ common = {
+ "data": data,
+ "depth": depth,
+ "hidden_dim": config.hidden_dim,
+ "learning_rate": config.learning_rate,
+ "weight_decay": config.weight_decay,
+ }
+ if method == "BP":
+ return BPTrainer(**common)
+ if method == "KAFT":
+ return KAFTTrainer(
+ **common,
+ diffusion_alpha=config.diffusion_alpha,
+ diffusion_steps=config.diffusion_steps,
+ hop_cap=config.hop_cap,
+ num_probes=config.num_probes,
+ feedback_learning_rate=config.feedback_learning_rate,
+ align_every=config.align_every,
+ )
+ raise ValueError(f"Unknown method: {method}")
+
+
+def _summary_frame(records: list[dict[str, Any]]) -> pd.DataFrame:
+ rows = []
+ for method in ("BP", "KAFT"):
+ values = np.asarray(
+ [
+ row["result"]["test_accuracy_at_validation_peak"]
+ for row in records
+ if row["method"] == method
+ ],
+ dtype=float,
+ )
+ rows.append(
+ {
+ "method": method,
+ "mean_test_accuracy_percent": 100.0 * values.mean(),
+ "std_test_accuracy_percent": (
+ 100.0 * values.std(ddof=1)
+ if len(values) > 1
+ else 0.0
+ ),
+ "seeds": len(values),
+ }
+ )
+ return pd.DataFrame(rows)
+
+
+def _plot_histories(
+ records: list[dict[str, Any]],
+ output_path: Path,
+) -> None:
+ fig, axes = plt.subplots(1, 2, figsize=(10, 3.8))
+ for method, color in (("BP", "#4C78A8"), ("KAFT", "#E45756")):
+ histories = [
+ row["history"]
+ for row in records
+ if row["method"] == method
+ ]
+ loss = np.asarray([history["train_loss"] for history in histories])
+ test = np.asarray(
+ [
+ [
+ np.nan if value is None else value
+ for value in history["test_accuracy"]
+ ]
+ for history in histories
+ ]
+ )
+ epochs = np.arange(1, loss.shape[1] + 1)
+ median_loss = np.nanmedian(loss, axis=0)
+ axes[0].plot(epochs, median_loss, color=color, label=method)
+ axes[0].fill_between(
+ epochs,
+ np.nanpercentile(loss, 25, axis=0),
+ np.nanpercentile(loss, 75, axis=0),
+ color=color,
+ alpha=0.15,
+ )
+ evaluated = ~np.isnan(test).all(axis=0)
+ axes[1].plot(
+ epochs[evaluated],
+ 100.0 * np.nanmedian(test[:, evaluated], axis=0),
+ color=color,
+ label=method,
+ )
+ axes[0].set_xlabel("Epoch")
+ axes[0].set_ylabel("Training cross-entropy")
+ axes[0].set_yscale("log")
+ axes[1].set_xlabel("Epoch")
+ axes[1].set_ylabel("Test accuracy (%)")
+ for axis in axes:
+ axis.grid(alpha=0.2)
+ axis.legend(frameon=False)
+ fig.suptitle("Cora, identical 6-layer GCN forward model")
+ fig.tight_layout()
+ fig.savefig(output_path, dpi=180, bbox_inches="tight")
+ plt.close(fig)
+
+
+def run_mvp(
+ config: MVPConfig | None = None,
+ output_dir: str | Path = "artifacts",
+ data_root: str | Path = "data",
+) -> dict[str, Any]:
+ """Run BP/KAFT accuracy and BP transport diagnostics end to end."""
+ config = config or MVPConfig()
+ if config.dataset != "Cora":
+ raise ValueError("The minimal package currently exposes only Cora")
+ output_dir = Path(output_dir)
+ output_dir.mkdir(parents=True, exist_ok=True)
+ data = load_cora(root=data_root, device=config.device)
+
+ records: list[dict[str, Any]] = []
+ for seed in config.seeds:
+ for method in ("BP", "KAFT"):
+ seed_everything(seed)
+ trainer = _make_trainer(method, data, config, config.depth)
+ result, history = _train(
+ trainer,
+ config.epochs,
+ config.eval_every,
+ )
+ records.append(
+ {
+ "seed": seed,
+ "method": method,
+ "result": result,
+ "history": history,
+ }
+ )
+
+ diagnostics: list[dict[str, Any]] = []
+ for seed in config.seeds:
+ seed_everything(seed)
+ trainer = _make_trainer(
+ "BP",
+ data,
+ config,
+ config.diagnostic_depth,
+ )
+ result, _ = _train(
+ trainer,
+ config.diagnostic_epochs,
+ config.eval_every,
+ )
+ diagnostics.append(
+ {
+ "seed": seed,
+ "training_result": result,
+ **trainer.gradient_diagnostic(),
+ }
+ )
+
+ summary = _summary_frame(records)
+ summary.to_csv(output_dir / "mvp_summary.csv", index=False)
+ _plot_histories(records, output_dir / "training_curves.png")
+
+ payload = {
+ "config": {
+ **asdict(config),
+ "seeds": list(config.seeds),
+ },
+ "environment": {
+ "python": platform.python_version(),
+ "torch": torch.__version__,
+ "torch_geometric": torch_geometric.__version__,
+ "device": config.device,
+ },
+ "summary": summary.to_dict(orient="records"),
+ "records": records,
+ "gradient_diagnostics": diagnostics,
+ }
+ with (output_dir / "mvp_results.json").open("w") as handle:
+ json.dump(payload, handle, indent=2, allow_nan=False)
+ return payload
diff --git a/kaft_mvp/trainers.py b/kaft_mvp/trainers.py
new file mode 100644
index 0000000..bff2d7c
--- /dev/null
+++ b/kaft_mvp/trainers.py
@@ -0,0 +1,380 @@
+"""Minimal BP and KAFT trainers with an identical bias-free GCN forward pass."""
+
+from __future__ import annotations
+
+import random
+from dataclasses import dataclass
+from typing import Any
+
+import numpy as np
+import torch
+import torch.nn.functional as functional
+from sklearn.linear_model import LogisticRegression
+from sklearn.preprocessing import StandardScaler
+
+from .data import spmm
+
+
+def seed_everything(seed: int) -> None:
+ random.seed(seed)
+ np.random.seed(seed)
+ torch.manual_seed(seed)
+ if torch.cuda.is_available():
+ torch.cuda.manual_seed_all(seed)
+
+
+def _weight_shapes(
+ input_dim: int,
+ hidden_dim: int,
+ output_dim: int,
+ depth: int,
+) -> list[tuple[int, int]]:
+ dims = [input_dim] + [hidden_dim] * (depth - 1) + [output_dim]
+ return list(zip(dims[:-1], dims[1:]))
+
+
+@dataclass
+class StepResult:
+ loss: float
+ train_accuracy: float
+
+
+class BPTrainer:
+ """Standard backpropagation through a plain deep GCN."""
+
+ def __init__(
+ self,
+ data: dict[str, Any],
+ depth: int,
+ hidden_dim: int,
+ learning_rate: float,
+ weight_decay: float,
+ ) -> None:
+ self.data = data
+ self.depth = depth
+ self.weights = torch.nn.ParameterList()
+ for input_dim, output_dim in _weight_shapes(
+ data["num_features"],
+ hidden_dim,
+ data["num_classes"],
+ depth,
+ ):
+ weight = torch.nn.Parameter(
+ torch.empty(input_dim, output_dim, device=data["x"].device)
+ )
+ torch.nn.init.xavier_uniform_(weight)
+ self.weights.append(weight)
+ self.optimizer = torch.optim.Adam(
+ self.weights,
+ lr=learning_rate,
+ weight_decay=weight_decay,
+ )
+
+ def forward(
+ self,
+ retain_intermediate_gradients: bool = False,
+ ) -> tuple[torch.Tensor, dict[str, list[torch.Tensor]]]:
+ hidden = self.data["x"]
+ preactivations: list[torch.Tensor] = []
+ hidden_states: list[torch.Tensor] = [hidden]
+ for layer, weight in enumerate(self.weights):
+ preactivation = spmm(
+ self.data["adjacency"],
+ hidden @ weight,
+ )
+ if retain_intermediate_gradients:
+ preactivation.retain_grad()
+ preactivations.append(preactivation)
+ hidden = (
+ functional.relu(preactivation)
+ if layer < self.depth - 1
+ else preactivation
+ )
+ hidden_states.append(hidden)
+ return hidden, {
+ "preactivations": preactivations,
+ "hidden_states": hidden_states,
+ }
+
+ def train_step(self) -> StepResult:
+ self.optimizer.zero_grad(set_to_none=True)
+ logits, _ = self.forward()
+ mask = self.data["train_mask"]
+ loss = functional.cross_entropy(
+ logits[mask],
+ self.data["y"][mask],
+ )
+ loss.backward()
+ self.optimizer.step()
+ accuracy = (
+ logits[mask].argmax(dim=1) == self.data["y"][mask]
+ ).float().mean()
+ return StepResult(float(loss.item()), float(accuracy.item()))
+
+ @torch.no_grad()
+ def accuracy(self, mask_name: str) -> float:
+ logits, _ = self.forward()
+ mask = self.data[mask_name]
+ return float(
+ (logits[mask].argmax(dim=1) == self.data["y"][mask])
+ .float()
+ .mean()
+ .item()
+ )
+ def gradient_diagnostic(self) -> dict[str, Any]:
+ """Measure parameter/error gradients and a standardized hidden probe."""
+ self.optimizer.zero_grad(set_to_none=True)
+ logits, intermediates = self.forward(
+ retain_intermediate_gradients=True
+ )
+ mask = self.data["train_mask"]
+ loss = functional.cross_entropy(
+ logits[mask],
+ self.data["y"][mask],
+ )
+ loss.backward()
+
+ weight_norms = [
+ 0.0 if weight.grad is None else float(weight.grad.norm().item())
+ for weight in self.weights
+ ]
+ error_norms = [
+ 0.0
+ if preactivation.grad is None
+ else float(preactivation.grad.norm().item())
+ for preactivation in intermediates["preactivations"]
+ ]
+ penultimate_hidden = intermediates["hidden_states"][-2].detach()
+ train_x = penultimate_hidden[mask].cpu().numpy()
+ test_x = penultimate_hidden[self.data["test_mask"]].cpu().numpy()
+ train_y = self.data["y"][mask].cpu().numpy()
+ test_y = self.data["y"][self.data["test_mask"]].cpu().numpy()
+ scaler = StandardScaler().fit(train_x)
+ probe = LogisticRegression(
+ C=1.0,
+ max_iter=2000,
+ random_state=0,
+ ).fit(scaler.transform(train_x), train_y)
+ probe_accuracy = float(
+ probe.score(scaler.transform(test_x), test_y)
+ )
+ return {
+ "all_weight_gradients_exact_zero": all(
+ value == 0.0 for value in weight_norms
+ ),
+ "weight_gradient_frobenius": weight_norms,
+ "preactivation_error_frobenius": error_norms,
+ "output_adjacent_error_frobenius": error_norms[-2],
+ "standardized_penultimate_probe_accuracy": probe_accuracy,
+ "diagnostic_loss": float(loss.item()),
+ }
+
+
+class KAFTTrainer:
+ """Kronecker-Aligned Feedback Training for the same forward GCN."""
+
+ def __init__(
+ self,
+ data: dict[str, Any],
+ depth: int,
+ hidden_dim: int,
+ learning_rate: float,
+ weight_decay: float,
+ diffusion_alpha: float = 0.5,
+ diffusion_steps: int = 10,
+ hop_cap: int = 3,
+ num_probes: int = 64,
+ feedback_learning_rate: float = 0.5,
+ align_every: int = 10,
+ ) -> None:
+ self.data = data
+ self.depth = depth
+ self.diffusion_alpha = diffusion_alpha
+ self.diffusion_steps = diffusion_steps
+ self.hop_cap = hop_cap
+ self.num_probes = num_probes
+ self.feedback_learning_rate = feedback_learning_rate
+ self.align_every = align_every
+ self.step_index = 0
+
+ self.weights = torch.nn.ParameterList()
+ for input_dim, output_dim in _weight_shapes(
+ data["num_features"],
+ hidden_dim,
+ data["num_classes"],
+ depth,
+ ):
+ weight = torch.nn.Parameter(
+ torch.empty(input_dim, output_dim, device=data["x"].device),
+ requires_grad=False,
+ )
+ torch.nn.init.xavier_uniform_(weight)
+ self.weights.append(weight)
+
+ self.feedback = [
+ torch.randn(
+ data["num_classes"],
+ hidden_dim,
+ device=data["x"].device,
+ )
+ * 0.01
+ for _ in range(depth - 1)
+ ]
+ self.optimizer = torch.optim.Adam(
+ self.weights,
+ lr=learning_rate,
+ weight_decay=weight_decay,
+ )
+
+ @torch.no_grad()
+ def forward(
+ self,
+ ) -> tuple[torch.Tensor, dict[str, list[torch.Tensor]]]:
+ hidden = self.data["x"]
+ preactivations: list[torch.Tensor] = []
+ hidden_states: list[torch.Tensor] = []
+ layer_inputs: list[torch.Tensor] = []
+ for layer, weight in enumerate(self.weights):
+ layer_inputs.append(hidden)
+ preactivation = spmm(
+ self.data["adjacency"],
+ hidden @ weight,
+ )
+ preactivations.append(preactivation)
+ hidden = (
+ functional.relu(preactivation)
+ if layer < self.depth - 1
+ else preactivation
+ )
+ if layer < self.depth - 1:
+ hidden_states.append(hidden)
+ return hidden, {
+ "preactivations": preactivations,
+ "hidden_states": hidden_states,
+ "layer_inputs": layer_inputs,
+ }
+
+ @torch.no_grad()
+ def _fixed_error_diffusion(self, error: torch.Tensor) -> torch.Tensor:
+ """Apply the fixed linear D(A-hat) used in the submitted rule."""
+ diffused = error.clone()
+ for _ in range(self.diffusion_steps):
+ diffused = (
+ (1.0 - self.diffusion_alpha) * error
+ + self.diffusion_alpha
+ * spmm(self.data["adjacency"], diffused)
+ )
+ return diffused
+
+ @torch.no_grad()
+ def _align_feature_factors(self) -> None:
+ """Move each R_l toward the chain-normalized suffix probe target."""
+ hidden_dim = self.feedback[0].shape[1]
+ for layer in range(self.depth - 1):
+ probes = torch.randn(
+ hidden_dim,
+ self.num_probes,
+ device=self.data["x"].device,
+ )
+ target_probes = probes
+ mean_probe_norm = probes.norm(dim=0).mean()
+ for suffix_layer in range(layer + 1, self.depth):
+ target_probes = (
+ self.weights[suffix_layer].t() @ target_probes
+ )
+ column_norm = target_probes.norm(
+ dim=0,
+ keepdim=True,
+ ).clamp(min=1e-8)
+ target_probes = (
+ target_probes / column_norm * mean_probe_norm
+ )
+ target = target_probes @ probes.t() / self.num_probes
+ current = self.feedback[layer]
+ cosine = functional.cosine_similarity(
+ current.reshape(1, -1),
+ target.reshape(1, -1),
+ ).item()
+ current_norm = current.norm().clamp(min=1e-8)
+ target_norm = target.norm().clamp(min=1e-8)
+ cosine_gradient = (
+ target / (current_norm * target_norm)
+ - cosine * current / current_norm.square()
+ )
+ updated = (
+ current
+ + self.feedback_learning_rate * cosine_gradient
+ )
+ self.feedback[layer] = updated / updated.norm(
+ dim=0,
+ keepdim=True,
+ ).clamp(min=1e-8)
+
+ @torch.no_grad()
+ def train_step(self) -> StepResult:
+ self.optimizer.zero_grad(set_to_none=True)
+ logits, intermediates = self.forward()
+ mask = self.data["train_mask"]
+ labels = self.data["y"]
+ probabilities = functional.softmax(logits, dim=1)
+ one_hot = functional.one_hot(
+ labels,
+ self.data["num_classes"],
+ ).float()
+ output_error = torch.zeros_like(probabilities)
+ output_error[mask] = (
+ probabilities[mask] - one_hot[mask]
+ ) / mask.sum().clamp(min=1)
+ diffused_error = self._fixed_error_diffusion(output_error)
+
+ if self.step_index % self.align_every == 0:
+ self._align_feature_factors()
+
+ gradients: list[torch.Tensor] = []
+ for layer in range(self.depth - 1):
+ topology_error = diffused_error
+ hops = min(self.depth - 1 - layer, self.hop_cap)
+ for _ in range(hops):
+ topology_error = spmm(
+ self.data["adjacency"],
+ topology_error,
+ )
+ hidden_error = (
+ topology_error @ self.feedback[layer]
+ ) * (intermediates["preactivations"][layer] > 0)
+ local_error = spmm(
+ self.data["adjacency"],
+ hidden_error,
+ )
+ gradients.append(
+ intermediates["layer_inputs"][layer].t() @ local_error
+ )
+
+ output_local_error = spmm(
+ self.data["adjacency"],
+ output_error,
+ )
+ gradients.append(
+ intermediates["layer_inputs"][-1].t() @ output_local_error
+ )
+ for weight, gradient in zip(self.weights, gradients):
+ weight.grad = gradient
+ self.optimizer.step()
+ self.step_index += 1
+
+ loss = functional.cross_entropy(logits[mask], labels[mask])
+ accuracy = (
+ logits[mask].argmax(dim=1) == labels[mask]
+ ).float().mean()
+ return StepResult(float(loss.item()), float(accuracy.item()))
+
+ @torch.no_grad()
+ def accuracy(self, mask_name: str) -> float:
+ logits, _ = self.forward()
+ mask = self.data[mask_name]
+ return float(
+ (logits[mask].argmax(dim=1) == self.data["y"][mask])
+ .float()
+ .mean()
+ .item()
+ )
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 0000000..9314a5f
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,21 @@
+[build-system]
+requires = ["setuptools>=68", "wheel"]
+build-backend = "setuptools.build_meta"
+
+[project]
+name = "kaft-mvp"
+version = "0.1.0"
+description = "Minimal anonymous reproduction of Kronecker-Aligned Feedback Training"
+readme = "README.md"
+requires-python = ">=3.10"
+dependencies = [
+ "torch>=2.0",
+ "torch-geometric>=2.4",
+ "numpy>=1.24",
+ "pandas>=2.0",
+ "matplotlib>=3.7",
+ "scikit-learn>=1.3",
+]
+
+[tool.setuptools.packages.find]
+include = ["kaft_mvp*"]
diff --git a/reproduce_mvp.ipynb b/reproduce_mvp.ipynb
new file mode 100644
index 0000000..f91fd2a
--- /dev/null
+++ b/reproduce_mvp.ipynb
@@ -0,0 +1,346 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "51380dc6",
+ "metadata": {},
+ "source": [
+ "# KAFT minimal end-to-end reproduction\n",
+ "\n",
+ "Run all cells. The notebook installs the local package, downloads Cora, trains identical six-layer GCNs with BP and KAFT, and runs the ten-layer BP gradient diagnostic."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "3297b597",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-07-24T16:04:15.138535Z",
+ "iopub.status.busy": "2026-07-24T16:04:15.138409Z",
+ "iopub.status.idle": "2026-07-24T16:04:33.479833Z",
+ "shell.execute_reply": "2026-07-24T16:04:33.479251Z"
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0"
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import subprocess\n",
+ "import sys\n",
+ "\n",
+ "subprocess.check_call(\n",
+ " [sys.executable, \"-m\", \"pip\", \"install\", \"-e\", \".\"],\n",
+ " stdout=subprocess.DEVNULL,\n",
+ " stderr=subprocess.STDOUT,\n",
+ ")\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "d1cea2ad",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-07-24T16:04:33.481434Z",
+ "iopub.status.busy": "2026-07-24T16:04:33.481287Z",
+ "iopub.status.idle": "2026-07-24T16:04:42.628870Z",
+ "shell.execute_reply": "2026-07-24T16:04:42.628251Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "from pathlib import Path\n",
+ "\n",
+ "import pandas as pd\n",
+ "from IPython.display import Image, display\n",
+ "\n",
+ "from kaft_mvp import MVPConfig, run_mvp\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "184dec59",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-07-24T16:04:42.630861Z",
+ "iopub.status.busy": "2026-07-24T16:04:42.630592Z",
+ "iopub.status.idle": "2026-07-24T16:05:15.824390Z",
+ "shell.execute_reply": "2026-07-24T16:05:15.823696Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "config = MVPConfig(\n",
+ " seeds=(0, 1, 2),\n",
+ " depth=6,\n",
+ " diagnostic_depth=10,\n",
+ " epochs=200,\n",
+ " diagnostic_epochs=100,\n",
+ " device=\"cpu\",\n",
+ ")\n",
+ "results = run_mvp(config=config, output_dir=\"artifacts\")\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "4a6ce6a9",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-07-24T16:05:15.826720Z",
+ "iopub.status.busy": "2026-07-24T16:05:15.826497Z",
+ "iopub.status.idle": "2026-07-24T16:05:15.835718Z",
+ "shell.execute_reply": "2026-07-24T16:05:15.835159Z"
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<style scoped>\n",
+ " .dataframe tbody tr th:only-of-type {\n",
+ " vertical-align: middle;\n",
+ " }\n",
+ "\n",
+ " .dataframe tbody tr th {\n",
+ " vertical-align: top;\n",
+ " }\n",
+ "\n",
+ " .dataframe thead th {\n",
+ " text-align: right;\n",
+ " }\n",
+ "</style>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>method</th>\n",
+ " <th>mean_test_accuracy_percent</th>\n",
+ " <th>std_test_accuracy_percent</th>\n",
+ " <th>seeds</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>0</th>\n",
+ " <td>BP</td>\n",
+ " <td>68.866666</td>\n",
+ " <td>1.201387</td>\n",
+ " <td>3</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>1</th>\n",
+ " <td>KAFT</td>\n",
+ " <td>78.533334</td>\n",
+ " <td>1.331668</td>\n",
+ " <td>3</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " method mean_test_accuracy_percent std_test_accuracy_percent seeds\n",
+ "0 BP 68.866666 1.201387 3\n",
+ "1 KAFT 78.533334 1.331668 3"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "summary = pd.DataFrame(results[\"summary\"])\n",
+ "summary\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "6f5f4198",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-07-24T16:05:15.837113Z",
+ "iopub.status.busy": "2026-07-24T16:05:15.836976Z",
+ "iopub.status.idle": "2026-07-24T16:05:15.846055Z",
+ "shell.execute_reply": "2026-07-24T16:05:15.845476Z"
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<style scoped>\n",
+ " .dataframe tbody tr th:only-of-type {\n",
+ " vertical-align: middle;\n",
+ " }\n",
+ "\n",
+ " .dataframe tbody tr th {\n",
+ " vertical-align: top;\n",
+ " }\n",
+ "\n",
+ " .dataframe thead th {\n",
+ " text-align: right;\n",
+ " }\n",
+ "</style>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>seed</th>\n",
+ " <th>all_weight_gradients_exact_zero</th>\n",
+ " <th>output_adjacent_error_frobenius</th>\n",
+ " <th>standardized_hidden_probe_percent</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>0</th>\n",
+ " <td>0</td>\n",
+ " <td>True</td>\n",
+ " <td>0.000126</td>\n",
+ " <td>51.4</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>1</th>\n",
+ " <td>1</td>\n",
+ " <td>True</td>\n",
+ " <td>0.000160</td>\n",
+ " <td>57.8</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>2</th>\n",
+ " <td>2</td>\n",
+ " <td>True</td>\n",
+ " <td>0.000148</td>\n",
+ " <td>53.6</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " seed all_weight_gradients_exact_zero output_adjacent_error_frobenius \\\n",
+ "0 0 True 0.000126 \n",
+ "1 1 True 0.000160 \n",
+ "2 2 True 0.000148 \n",
+ "\n",
+ " standardized_hidden_probe_percent \n",
+ "0 51.4 \n",
+ "1 57.8 \n",
+ "2 53.6 "
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/plain": [
+ "{'KAFT exceeds BP': np.True_,\n",
+ " 'all BP weight gradients are exactly zero': np.True_,\n",
+ " 'output-adjacent error is finite and nonzero': np.True_,\n",
+ " 'hidden probe is above chance': np.True_}"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "diagnostic = pd.DataFrame([\n",
+ " {\n",
+ " \"seed\": row[\"seed\"],\n",
+ " \"all_weight_gradients_exact_zero\": row[\"all_weight_gradients_exact_zero\"],\n",
+ " \"output_adjacent_error_frobenius\": row[\"output_adjacent_error_frobenius\"],\n",
+ " \"standardized_hidden_probe_percent\": 100 * row[\"standardized_penultimate_probe_accuracy\"],\n",
+ " }\n",
+ " for row in results[\"gradient_diagnostics\"]\n",
+ "])\n",
+ "display(diagnostic)\n",
+ "\n",
+ "mean_by_method = summary.set_index(\"method\")[\"mean_test_accuracy_percent\"]\n",
+ "checks = {\n",
+ " \"KAFT exceeds BP\": mean_by_method[\"KAFT\"] > mean_by_method[\"BP\"],\n",
+ " \"all BP weight gradients are exactly zero\": diagnostic[\"all_weight_gradients_exact_zero\"].all(),\n",
+ " \"output-adjacent error is finite and nonzero\": (diagnostic[\"output_adjacent_error_frobenius\"] > 0).all(),\n",
+ " \"hidden probe is above chance\": (diagnostic[\"standardized_hidden_probe_percent\"] > 100 / 7).all(),\n",
+ "}\n",
+ "assert all(checks.values()), checks\n",
+ "checks\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "e745a0eb",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-07-24T16:05:15.847358Z",
+ "iopub.status.busy": "2026-07-24T16:05:15.847223Z",
+ "iopub.status.idle": "2026-07-24T16:05:15.855080Z",
+ "shell.execute_reply": "2026-07-24T16:05:15.854411Z"
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAABvMAAAKkCAYAAAA9V8MaAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAbrwAAG68BXhqRHAABAABJREFUeJzs3Xd4FOXaBvB7tu+m90ASCL2FJoRepSgqooKUgwKKvfupx3asx3JsqMd6VARUlGIBC0WqVEPvPZAEAuk923fn+2OTYTfJpu4mm3D/ritXdmbeeefdybbMs8/zCqIoiiAiIiIiIiIiIiIiIiIinyNr6gEQERERERERERERERERUdUYzCMiIiIiIiIiIiIiIiLyUQzmEREREREREREREREREfkoBvOIiIiIiIiIiIiIiIiIfBSDeUREREREREREREREREQ+isE8IiIiIiIiIiIiIiIiIh/FYB4RERERERERERERERGRj2Iwj4iIiIiIiIiIiIiIiMhHMZhHRERERERERERERERE5KMYzCMiIiIiIiIiIiIiIiLyUQzmEREREREREREREREREfkoBvOIiIiIiIiIiIiIiIiIfBSDeUREREREREREREREREQ+isE8IiIiIiIiIiIiIiIiIh/FYB4RERERERERERERERGRj2Iwj4iIiIiIiIiIiIiIiMhHMZhHRERERERERERERERE5KMYzCMiIiIijxAEAYIgYNSoUQ3ua9SoUVJ/LVVKSop0H+fMmdPUw6lRc/+bNPfxU8tx/vx5PProo+jevTv8/f2lx2WfPn2aemhUZuHChdLfZeHChU09HJ/XmO9nmzdvlo718ssve/VYRERERL5E0dQDICIiImoK6enp+Omnn7BhwwYcO3YMOTk5KC0tRVBQEGJjY5GYmIgJEybg+uuvh0qlaurhUjNRfmExPj6+WQTofEFGRga+/fZb/Pbbb0hOTkZOTg6CgoIQHR2Nfv364eqrr8bkyZOh0+maeqhUC5s3b8batWuxZcsWXLhwAbm5ubBarQgKCkJMTAz69OmDkSNHYtKkSQgODq5T3wcOHMDKlSuxadMmpKSkICcnB1arFSEhIejUqRMGDBiAyZMnY/DgwVXuv3DhQtxxxx3Sco8ePXDo0CHIZNV/x/Xaa6/F2rVrAQDnzp1DfHx8ncbt7MSJExgyZAjy8/Pr3QcRERER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nJycKtt9/vnnUrtp06ZVO24AokqlEn/77bdKbXJyclz+lklJSfU6B85qk5l3//33S2169+4tpqamuu1vw4YNYn5+vss6q9Uqrl69utoMjoMHD0pZUO3btxdtNluV7TyRmffLL79IfTz22GPif/7zn2qz4WJjY8W9e/fW+3h1GX9ubq64ffv2avvYuHGj6OfnJwIQR40aVWWb9957r1YZPcnJyVKG7fjx4yttT0tLEwMDA0XAkX3l7jmflJQkBgUFSeerqmwW5/tefu7d/Z1r69Zbb5X6e+ONNxrUV0Wffvqpy/PbUypm5omiKJaWlkqPf51OJ166dKnSfg3NzCtX22zcwsJCl2zM9957r1KbiplX/fv3r7Kvillot956q2gymdwee+zYsSIA0d/fv9L7ZXZ2tvSYHTx4sAhAjI+Pr9THwYMHpeM999xzlbYfOXJEPHv2rNsx2Gw28Z133pH6ePnll6ts55yhBUCMjo6u8r243JYtW6S2wcHB4p49eyq1OXHihEtWaE3P45pUPP/33ntvpeeeXq8Xe/XqJbXp16+fqNVqxQ0bNlTq76+//pL+Bt26davymJ76fJKfny+Gh4eLAERBEMQvv/yyUpuioiJx+PDhLvfR3WP7pptukvr64IMPqmxTXFwsjh8/Xupr9erVldowM4+IiIiuVAzmERERUYu2bt066aJP165dPdZv3759pX5XrVrltl1SUpJ04a1t27ai1Wqt1Mb5Itjjjz/usTHOmjVLCmK6K1flSdUFsjIzM0WVSiUCEMPCwsTc3Fy3/UyZMqXGYF75hc+4uLhKJdwquv3226VAaVpamttxAxBfffVVt/18+eWXNbbzZDAvNTVVVCgU0jm7ePFijX3W19dffy2NxV1pVk8E8z777DOpjy5duki3J02aJH7xxRfikiVLxFdeeUVs27attC0oKEhMTk6u9zE9OX5RFMUXX3xR6qeqx1Nubq6o0WhEAOLQoUPd9vPcc89J/SxfvrzS9ocfflh63O7fv7/aMc2fP1/qa/HixZW2O9/3fv36NTiQJ4qiOHToUKnPJUuWNLg/Z88//7zU93333eexfqsK5omiKH788cfS+gceeKDSfo0dzPvwww+ldlOnTnXbzmq1ugSB1q1bV6mNczApNja2xtfL119/XWq/c+dOl23Lly8XAUdZ3lWrVrk9J85fyqhqTLU1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y5YtAIBBgwZV+QWE8kAeALz++utuA3mAZ1+X6prt2VgZoZ7mqc8nQUFBUtDWE+er/DUtKyvL7dy+RERERFQ9BvOIiIioxXv00Uel2wsWLGjwBcIBAwZIt9etW1dje+d5gZz3rY/MzEzpdocOHaptu3bt2gYdy5Oc7/fGjRurbbt79+5q50caOXKkdLsucy41BkEQAEAKuDbE8OHDpdv1CWb44mPFz89Pul92ux379++vtv3evXul27WZ/6m+vHWuykuXiqKI+fPnY926dVKg8fbbb3eZ+8pZ3759pczMDRs21HoOv8bUvXt3KaBnMpnw1ltveaxvQRDw8MMPS8uvv/56jYFfTxk9erR0vzZv3tzorzGCICAxMRGAI1Dnbu7Qcp58fynnHKTbuXMnzp49i1OnTgEArr76ape25cG9zZs3Y//+/dIch+4ypmv7XDObzW7nVKyP3r17S2WF//rrrxrLdm7YsMFjx25Mnvp8IgiCVMUgKyurxuztms5X+fu20WiUAr5EREREVDcM5hEREVGLN2TIEFx33XUAHHPCzJgxo8a5hZx98MEH2LFjh7QcHx+Pq666CgBw8ODBai+Y7dmzRwpetW3bttqMn9pwnrum4hxizlauXIlDhw416FiedP3110sXUhcuXIj8/Hy3bd97771q++rfvz969OgBAFi6dGmjlYisjfJsFk+UaJs2bZpU0vGjjz7CpUuX6rR/bR8r58+fx4IFC+o3yHqYMWOGdPuLL75w2y4zM1Oas0wmk2H8+PFeG1Ntz9W+ffvw+++/17rfxMRE6bVi4cKF+Pzzz6Vt7kpsAo45+2bOnAnAkZ301Vdf1fqYjenVV1+VMi3nzZuHX375xWN9P/jgg1KW0d69e/H444/XOkhuMBgwe/bseh/7jTfekG4/99xzHgnO14VzxuY777zjtp3NZsO7775b5X4NVR6MM5lM0vmoqnRmebuMjAx89tlnldZXVNvn2meffebRbM/y+WUBx2vL999/77bt6tWr65UN7Qs8+fnEeV7SefPmue0nMzMTixcvrnZcs2bNkm6/8sorTT6PLxEREVFzxGAeERERXREWLVoklS3cuXMnhg0bVuM8T7t27cL48ePx+OOPw2w2u2x7+umnpduzZ8/GiRMnKu2flpaG6dOnS1k1Tz31VIPnfSrP2ACAd999t8qgWFJSEu68884G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Bw9K89t5mlwuxzfffIPffvsN119/PSIiIqBWq9GmTRvMmDED27Ztw1NPPeWVYzcmT34+eeCBB7Bv3z7MmTMHcXFxUKlUiIqKwtixY/H999/jxx9/lOZ3rUlgYCCWLFmCffv24bHHHkPfvn0RFhYGhUIBf39/dOrUCTfddBPmzZsnPfaJiIiIyEEQxUaezZuIiIiIfEZ5iUNBELBnzx6vXRQmupLddtttUsnb/fv3o0+fPk07ICIiIiIiImpWGMwjIiIiukKJoojo6GhkZWVh2rRpWLJkSVMPiajFyc7ORlxcHEwmEwYMGICkpKSmHhIRERERERE1MyyzSURERHSFOnToELKysqBQKPDaa6819XCIWqQ333wTJpMJAPDII4808WiIiIiIiIioOao8+QsRERERXRE2bNgAANJ8OkTUcOnp6Th8+DD0ej02bNiAzz77DADQtWtXTJ8+vYlHR0RERERERM0Ry2wSERERERF5yMKFC3HHHXe4rFOr1di0aRMGDx7cRKMiIiIiIiKi5oxlNomIiIiIiLwgOjoaN954I/7++28G8oiIiIiIiKjemJlHRERERERERERERERE5KOYmUdERERERERERERERETkoxjMIyIiIiIiIiIiIiIiIvJRDOYRERERERERERERERER+SgG84iIiIiIiIiIiIiIiIh8FIN5RERERERERERERERERD6KwTwiIiIiIiIiIiIiIiIiH8VgHhEREREREREREREREZGPYjCPiIiIiIiIiIiIiIiIyEcxmEdERERERERERERERETkoxjMIyIiIiIiIiIiIiIiIvJRDOYRERERERERERERERER+SgG84iIiIiIiIiIiIiIiIh8FIN5RERERERERERERERERD6KwTwiIiIiIiIiIiIiIiIiH8VgHhEREREREREREREREZGPYjCPiIiIiIiIiIiIiIiIyEcxmEdERERERERERERERETkoxjMIyIiIiIiIiIiIiIiIvJRDOYRERERERERERERERER+SgG84iIiIiIiIiIiIiIiIh8FIN5RERERERERERERERERD6KwTwiIiIiIiIiIiIiIiIiH8VgHhEREREREREREREREZGPYjCPiIiIiIiIiIiIiIiIyEcxmEdERERERERERERERETkoxjMIyIiIiIiIiIiIiIiIvJRDOYRERERERERERERERER+SgG84iIiIiIiIiIiIiIiIh8FIN5RERERERERERERERERD6KwTwiIiIiIiIiIiIiIiIiH8VgHhEREREREREREREREZGPYjCPiIiIiIiIiIiIiIiIyEcxmEdERERERERERERERETkoxjMIyIiIiIiIiIiIiIiIvJRDOYRERERERERERERERER+SgG84iIiIiIiIiIiIiIiIh8FIN5RERERERERERERERERD6KwTwiIiIiIiIiIiIiIiIiH8VgHhEREREREREREREREZGPYjCPiIiIiIiIiIiIiIiIyEcxmEdERERERERERERERETkoxRNPQBqOoIgNPUQiIiIiIjIC0RRbOohUB3x/zMiIiIiopbJE/+fMTOPiIiIiIiIiIiIiIiIyEcxM4+a5Fu7BQUFAIDg4OBGP3ZLx3PrPTy33sNz6z08t97B8+o9PLfew3PrPb50bpnd1fzx/7OWhefWe3huvYfn1nt4br2H59Z7eG69h+fWe3zl3Hry/zNm5hERERERERERERERERH5KAbziIiIiIiIiIiIiIiIiHwUg3lEREREREREREREREREPorBPCIiIiIiIiIiIiIiIiIfxWAeERERERERERERERERkY9iMI+IiIiIiIiIiIiIiIjIRzGYR0REREREREREREREROSjGMwjIiIiIiIiIiIiIiIi8lEM5hERERERERERERERERH5KAbziIiIiIiIqEVat24dpk6dirZt20Kj0UCr1aJ9+/aYOXMm/vrrr2r3LS4uxssvv4yePXvC398fQUFBSExMxHvvvQez2dxI94CIiIiIiAhQNPUAiIiIiIiIiDxJFEXcf//9+N///iet02q1AIBz587h3Llz+P777/H4449j3rx5lfZPTU3FqFGjkJKSAgDQ6XQwmUzYs2cP9uzZg8WLF2PDhg0ICQlplPtDRERERERXNmbmERERERERUYuycOFCKZA3ZcoUnDp1Cnq9Hnq9HidOnMCkSZMAAO+//z5++eUXl32tVismTpyIlJQUtGrVCuvWrUNpaSn0ej2WLFmCgIAA7N+/H7fddluj3y8iIiIiIroyMZhHRERERERELco333wDAOjYsSN++OEHdOrUSdrWpUsXLF++HO3btwcALFu2zGXfRYsW4fDhwwCAn376CWPHjgUAyGQyTJs2TQoSrlq1Chs2bPD6fSEiIiIiImIw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i10mNtduMUIIIYQQYkSSwVNCbEd1xx8fDGfPy771Jl53N8Z1MZ5Xw5UNbvr4porttj5hHkAs4uD7mpznkUi7234nWmNcF+1rKgrutEblZ56YWARDvjovkdjizBEhhBBCCLF93HPPPSilePjhh7nqqqs49dRTueqqq3jooYcwxnDPPff0u86ECRO49957uf/++4lGo1xyySVDuqaTTz4ZgEWLFg16zNtvv138esaMoPVEPB7nyCOPBOCRRx4Z8HrGGB599NGK+xHbl9/ZVbFtNQ/fyrxkxmVtR+k11K4Tm7f55EchhBBCCCGqFuZddtllfPOb39zq47/97W9z+eWXV2s5QgwLdmMj0YMOLu3I5cgufB1cF72ZmRy11BCP0BAvtQDtW5kHYFsWYcchnfFIZ1203vqgzWiNMSYINH0fqzyk832UMaBswIJYDJNOY3wfhmn4KYQQQgixs1m3bh11dXX9WlLut99+1NfXs379+kGv+/GPf5xFixbx1a9+dUjXdOmllwLw3nvvcf/99/e7XGtdrBacNGkSBx10UPGy2bNnAzBnzhzmzZvX77r33HMP77//PgAXX3zxkK5bbB2/b2VeS3NtFrIV3l9XOS9vD2mxKYQQQgghPoCqhXm33XYbd99991Yff88993DbbbdVazlCDBt1J51UsZ1dsAA/m8Gk0zVa0ZaNby21AO3ozZBz/X7HxKMOWdfD05pUdhuq8/KzLrTrYowJwrsCrYPqPMvCYDBOCKM15MM/IYQQQghRe+PHjyeZTPargnv77bdJJBKMGzdus9evq6vjZz/72ZCu6aijjuLcc88F4IorruDee+/Fy58MtnLlSi644AIWLlwIwA9+8AMsq/TSePbs2ey3334YYzjnnHN48skngSAAvOeee/j85z8PwGmnncYJJ5wwpOsWW0f3qcyzh3FlXnmLTZAwTwghhBBCfDBVm5m3raRlnthZRGbOxB4/Hj9/hrLf1oa79H3sj+yPzmaxIpEar7C/iaPqWbK6o7i9sSvJpDGNFcdEQg5KWWRzHqmsS30s3PdmBmS0BgzG9TA2KKNLF+bDPGwLAxgraEdjvOHbllQIIYQQYmfzqU99ip///Oecfvrp/PM//zO77LILS5cu5frrr0cpxTnnnFOTdd12221s2LCBuXPncu655xKJRIjH43R2lqq6rr766mIlXoHjODzw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dZ7XpWR7SkRERKOaZVnM8kahq6++esjtfr8fV199NcrLy3HWWWehubkZf//733HFFVek97nzzjvR2NgIj8eDf/zjH5gyZQoAQFVV3HDDDejq6sL/+3//Dw899BBuuukmzJw5MyOvaTTTWwaEeQ5X5nVGEojE+zpqsMUmEREREY13jt26JooiZFnGzp07nToFEdGIkyUR+X53etwZScDMoTVRBEFIV+elKvTMbE+JiIhoDMidzwrjxfHHH5/+fv/+/bbHHnnkEQDA6tWr00Fef1/5ylfg9/thGAYeffRRZyc6RhjN9jXznG6z2b/FJgBUMswjIiIionHO0Tabfr8f06dPd+oUREQjTpIEW5hnmBbCsWQWZ5R5blVGUjOgmyZiCbbaJCIiOpAcuudnXHn55ZfT30+bNi39/fbt27Fv3z4AwKpVq4Y81u/346STTgIAPPvssw7OcuywVeYpCsS8PEfPVz8gzGNlHhERERGNd46FeRMmTICmaQffkYhoFJFEEQUBt21brrXaVBUJgiAintARjiVh8SolERHRkHr/jjRZmTcmJBIJ1NTU4P7778dVV10FAJg+fTrOPffc9D5bt25Nfz937txhn6v3sQ8//NCh2Y4dlmXBaOmrzJNLSiD0X4TaAQMr8xjmEREREdF459iaeeeccw7uu+8+vPjiizjllFOcOg0R0YgrDA4O8yaVOnt38WjjcyuIxJPwuBREExp8bjXbUyIiIhp10ve7WACczS7oCLjdbiQSiUHbly9fjsceewwulyu9rb6+Pv19VVXVsM/Z+1hXVxfC4TD8fv9B53GoAVcoFDqk/UZSd3f3wXcahhUOw4rF+sYFhY6/hr0N7baxXzWz8r4diiN5b+nA+N46h++tc/jeOofvrXP43jqH761zxuN761hl3ne+8x2UlJTg+uuvR0NDg1OnISIacUUBj20cCg+++DPeeVwyAAHRuIbuKKvziIiIhmL1VOTxb8nRrby8HGVlZfD5fOltK1euxL333otJkybZ9u3/S7/X6x32Ofs/Nh4vFHwSZlurbSwUFzl+zsb2aPp7VR7cWYOIiIiIaLxxrDLvo48+wh133IGbb74ZRx11FK666iosX74cpaWlkCRp2ONOPvlkp6ZERHRIivPsF25C3bnVZhNI3Tnu9yjojibgdbM6j4iIaEg9KZ7FyrxRraamJv19c3Mz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nv72t7+1eezy5ctlWVaHjxdeeKEXP1H66In2+eSTT/TNb35TY8aMUSAQ0KBBg3TWWWfpscce68VPkl4606aNj9mzZ7c4fvHixZ069uOPP+6DT5dadXV1+r//+z/95Cc/0QUXXKBRo0YlP+/ixYs7VUZxcbFuuOEGjR8/XsFgUPn5+Tr11FN17733yhjT4fEDtU93p213796t3/zmN7rooot01FFHKRgMKhgMasyYMfra176mF198sd3jB3qf7k7b9lTbvP3225o3b56OOOII+f1+DR06VOeff36Hv5t019W23bZt2yGdi6+44ooWZXzjG9/o1LHxeDyFLZA63bm+atTd69runq+BnkB8duiIz1KH+Cw1iM+6hxgtdYjRUocYLXWI0VKHGK1jnr6uAA4f27dv1+mnn65t27ZJkkKhkCKRiN588029+eabeuihh7Rq1Srl5eX1bUXTTFFRUbOTcCAQkNfr1e7du7V79279/e9/19y5c7Vy5UqFQqFWy3C5XBo0aFCb7+H3+3u83v1JV9vn6aef1kUXXaS6ujpJUnZ2tsrKyvTcc8/pueee0xVXXKGlS5fKsqyU1DtdDRkypN3tsVhMZWVlkqQZM2a0uZ/X61V+fn6b2z2egfcn7PXXX9fZZ5/d5ePfeustnXXWWSotLZUkZWZmqrq6WuvWrdO6deu0cuVKPfHEE/L5fK0eP5D7dFfbdufOnRo1alSzi7ZQKCRjjLZt26Zt27bpkUce0YIFC/SHP/xBbre7zbIGap/ubr+Vutc29957r6699trk38qcnBwVFxfr8ccf1+OPP65bb72101+0pJuutq3b7e7wXBwOh1VZWSmp/XNxIBBQTk5Om9v74/lA6v71VXeva7t7vgZ6AvFZ1xCfpR7xWc8iPuseYrTUIUZLHWK01CFGSx1itE4wQC+IxWJmypQpRpIZOnSoef75540xxti2bR555BGTlZVlJJmzzz67j2uafiSZE044wfzmN78xn3zySfLnW7duNVdeeaWRZCSZefPmtTh22bJlRpIZNWpUL9a4/+hO+2zZssVkZGQYSeaUU04xmzdvNsYYU11dbW655Zbk7+X222/v4Vr3f0uWLEm2z6ZNm1psv/XWW40kM2vWrN6vXB9bvXq1ycvLM2eccYZZtGiR+fOf/2yKioqMJHPrrbe2e2xFRUVy3wkTJpg33njD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",
+ "text/plain": [
+ "<IPython.core.display.Image object>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "display(Image(filename=\"artifacts/training_curves.png\"))\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "2a578a07",
+ "metadata": {},
+ "source": [
+ "Machine-readable results are stored in `artifacts/mvp_results.json` and `artifacts/mvp_summary.csv`."
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.13.2"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..0a34157
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,8 @@
+torch>=2.0
+torch-geometric>=2.4
+numpy>=1.24
+pandas>=2.0
+matplotlib>=3.7
+scikit-learn>=1.3
+jupyter>=1.0
+nbconvert>=7.0
diff --git a/run_mvp.py b/run_mvp.py
new file mode 100644
index 0000000..c55b33c
--- /dev/null
+++ b/run_mvp.py
@@ -0,0 +1,53 @@
+#!/usr/bin/env python3
+"""Run the anonymous KAFT MVP from the command line."""
+
+from __future__ import annotations
+
+import argparse
+
+import pandas as pd
+
+from kaft_mvp import MVPConfig, run_mvp
+
+
+def main() -> None:
+ parser = argparse.ArgumentParser()
+ parser.add_argument("--device", default="cpu")
+ parser.add_argument("--seeds", default="0,1,2")
+ parser.add_argument("--epochs", type=int, default=200)
+ parser.add_argument("--diagnostic-epochs", type=int, default=100)
+ parser.add_argument("--output-dir", default="artifacts")
+ args = parser.parse_args()
+ seeds = tuple(int(value) for value in args.seeds.split(","))
+ config = MVPConfig(
+ seeds=seeds,
+ epochs=args.epochs,
+ diagnostic_epochs=args.diagnostic_epochs,
+ device=args.device,
+ )
+ payload = run_mvp(config=config, output_dir=args.output_dir)
+ print("\nBP versus KAFT")
+ print(pd.DataFrame(payload["summary"]).to_string(index=False))
+ diagnostic = pd.DataFrame(
+ [
+ {
+ "seed": row["seed"],
+ "all_weight_grads_zero": row[
+ "all_weight_gradients_exact_zero"
+ ],
+ "output_adjacent_error": row[
+ "output_adjacent_error_frobenius"
+ ],
+ "hidden_probe_percent": 100.0
+ * row["standardized_penultimate_probe_accuracy"],
+ }
+ for row in payload["gradient_diagnostics"]
+ ]
+ )
+ print("\n10-layer BP diagnostic")
+ print(diagnostic.to_string(index=False))
+ print(f"\nArtifacts written to {args.output_dir}/")
+
+
+if __name__ == "__main__":
+ main()