summaryrefslogtreecommitdiff
path: root/results
diff options
context:
space:
mode:
authorYurenHao0426 <Blackhao0426@gmail.com>2026-07-22 12:19:44 -0500
committerYurenHao0426 <Blackhao0426@gmail.com>2026-07-22 12:19:44 -0500
commit9763a8ecf4d614370cfde3ff926c5070ab766433 (patch)
tree4ed0b067bfcf4a16f811f37b5723d728ffb5db74 /results
parent04de9326e60bb9e3592c0ddb5474265d228cbce0 (diff)
baselines: complete native author-code audit
Diffstat (limited to 'results')
-rw-r--r--results/native/dualprop_cifar10_vgg16_a0_b0p1_seed1988.json287
-rw-r--r--results/native_baseline_audit.md24
2 files changed, 311 insertions, 0 deletions
diff --git a/results/native/dualprop_cifar10_vgg16_a0_b0p1_seed1988.json b/results/native/dualprop_cifar10_vgg16_a0_b0p1_seed1988.json
new file mode 100644
index 0000000..519c883
--- /dev/null
+++ b/results/native/dualprop_cifar10_vgg16_a0_b0p1_seed1988.json
@@ -0,0 +1,287 @@
+{
+ "audit": {
+ "complete": true,
+ "expected_epochs": 130,
+ "finite": true,
+ "selection_semantics_frozen": true,
+ "source_revision_match": true,
+ "source_tracked_clean": true
+ },
+ "dataset": "CIFAR-10",
+ "dataset_artifacts": [
+ {
+ "bytes": 170498071,
+ "path": "/home/yurenh2/sdrn/data/cifar-10-python.tar.gz",
+ "sha256": "6d958be074577803d12ecdefd02955f39262c83c16fe9348329d7fe0b5c001ce"
+ },
+ {
+ "bytes": 169566452,
+ "path": "/scratch/yurenh2/cifar10-binary-converted-v1.tar.gz",
+ "sha256": "0b97b0a786c64f4cd0996cace20e81e189669aba9f4b4e517eb529f9c7105cec"
+ }
+ ],
+ "gpu": {
+ "driver_version": "535.183.01",
+ "memory_total_mib": "8192",
+ "name": "NVIDIA GeForce GTX 1080",
+ "physical_index": "7",
+ "uuid": "GPU-df3d5933-c3e9-9ea1-d595-9d2a3b68c14b"
+ },
+ "importer_provenance": {
+ "path": "/home/yurenh2/sdil",
+ "revision": "04de9326e60bb9e3592c0ddb5474265d228cbce0",
+ "tracked_dirty": false
+ },
+ "method": "Dual Propagation",
+ "metrics": {
+ "epochs_observed": 130,
+ "final_epoch": 130,
+ "final_train_accuracy_percent": 99.96444702148438,
+ "final_validation_accuracy_percent": 92.76000213623047,
+ "primary_test_accuracy_percent": 92.45999908447266,
+ "primary_test_loss": 0.33965352177619934,
+ "primary_test_top5_accuracy_percent": 99.80000305175781,
+ "test_evaluations": 1,
+ "test_selected_test_accuracy_percent": null,
+ "test_wall_s": 3.2275850772857666,
+ "training_wall_s": 23052.372897148132,
+ "validation_selected_epoch": 118,
+ "validation_selected_test_accuracy_percent": 92.45999908447266,
+ "validation_selected_validation_accuracy_percent": 92.86000061035156,
+ "validation_wall_s": 64.21902823448181,
+ "wall_definition": "sum of author-measured train, validation, and final test runtimes; excludes setup, checkpoint I/O, and diagnostic plotting",
+ "wall_s": 23119.8195104599
+ },
+ "protocol": {
+ "command": [
+ "python",
+ "train.py",
+ "--model",
+ "VGG16",
+ "--dataset",
+ "cifar10",
+ "--num-epochs",
+ "130",
+ "--batch-size",
+ "100",
+ "--alpha",
+ "0.0",
+ "--beta",
+ "0.1",
+ "--loss",
+ "sce",
+ "--inference-sequence",
+ "fwK",
+ "--inference-passes-nudged",
+ "16",
+ "--learning-rate",
+ "0.025",
+ "--learning-rate-final",
+ "0.000002",
+ "--warmup-learning-rate",
+ "0.001",
+ "--learning-algorithm",
+ "dualprop-lagr-ff",
+ "--activation",
+ "relu",
+ "--decay-epochs",
+ "120",
+ "--warmup-epochs",
+ "10",
+ "--momentum",
+ "0.9",
+ "--weight-decay",
+ "5e-4",
+ "--dtype",
+ "float32",
+ "--param-dtype",
+ "float32",
+ "--percent-train",
+ "90",
+ "--percent-val",
+ "10",
+ "--seeds",
+ "1988",
+ "--experiment-name",
+ "sdil-dp-full-a0-b0p1-seed1988-v1"
+ ],
+ "dataset": "CIFAR-10",
+ "expected_epochs": 130,
+ "expected_gpu": {
+ "name": "NVIDIA GeForce GTX 1080",
+ "physical_index": "7"
+ },
+ "method": "Dual Propagation",
+ "paper_url": "https://arxiv.org/abs/2402.08573",
+ "published_accuracy_percent_mean": 92.41,
+ "published_accuracy_percent_sd": 0.07,
+ "repository_url": "https://github.com/Rasmuskh/dualprop_icml_2024",
+ "required_dataset_sha256": [
+ "6d958be074577803d12ecdefd02955f39262c83c16fe9348329d7fe0b5c001ce",
+ "0b97b0a786c64f4cd0996cace20e81e189669aba9f4b4e517eb529f9c7105cec"
+ ],
+ "resolved_config": {
+ "alpha": 0.0,
+ "batch_size": 100,
+ "beta": 0.1,
+ "decay_epochs": 120,
+ "inference_passes_nudged": 16,
+ "inference_sequence": "fwK",
+ "learning_algorithm": "dualprop-lagr-ff",
+ "learning_rate": 0.025,
+ "model": "VGG16",
+ "momentum": 0.9,
+ "percent_train": 90,
+ "percent_val": 10,
+ "warmup_epochs": 10,
+ "weight_decay": 0.0005
+ },
+ "seed": 1988,
+ "selection_semantics": {
+ "primary": "single test evaluation from the best-validation checkpoint",
+ "test_selected": "not available; test is evaluated only once",
+ "validation_selected": "same as primary"
+ },
+ "source_revision": "7b2595b34421e1483a721dbfdeff8cdabda3a1ff"
+ },
+ "protocol_id": "dualprop_cifar10_vgg16_a0_b0p1_seed1988",
+ "resolved_config": {
+ "alpha": 0.0,
+ "batch_size": 100,
+ "beta": 0.1,
+ "decay_epochs": 120,
+ "inference_passes_nudged": 16,
+ "inference_sequence": "fwK",
+ "learning_algorithm": "dualprop-lagr-ff",
+ "learning_rate": 0.025,
+ "model": "VGG16",
+ "momentum": 0.9,
+ "percent_train": 90,
+ "percent_val": 10,
+ "warmup_epochs": 10,
+ "weight_decay": 0.0005
+ },
+ "run_artifacts": [
+ {
+ "bytes": 7579669,
+ "path": "/scratch/yurenh2/sdil-reference/dualprop_icml_2024/runs/sdil-dp-full-a0-b0p1-seed1988-v1/2026_07_22_05_23_43/hist.npy",
+ "sha256": "401f24e1780b1ae1b57524694e9b9daaa68c5607ea7f68ef0c08698de87608dc"
+ }
+ ],
+ "runtime_environment": {
+ "pip_freeze": [
+ "Markdown==3.10.2",
+ "MarkupSafe==3.0.3",
+ "PyYAML==6.0.3",
+ "Pygments==2.20.0",
+ "Werkzeug==3.1.8",
+ "absl-py==1.4.0",
+ "array_record==0.8.1",
+ "astunparse==1.6.3",
+ "attrs==26.1.0",
+ "certifi==2026.7.22",
+ "cffi==2.1.0",
+ "charset-normalizer==3.4.9",
+ "chex==0.1.7",
+ "click==8.4.2",
+ "contourpy==1.3.2",
+ "cryptography==49.0.0",
+ "cycler==0.12.1",
+ "dm-pix==0.4.1",
+ "dm-tree==0.1.10",
+ "einops==0.8.2",
+ "etils==1.13.0",
+ "flatbuffers==25.12.19",
+ "flax==0.7.0",
+ "fonttools==4.63.0",
+ "fsspec==2026.6.0",
+ "gast==0.7.0",
+ "google-auth-oauthlib==1.4.0",
+ "google-auth==2.56.2",
+ "google-pasta==0.2.0",
+ "grpcio==1.82.1",
+ "h5py==3.16.0",
+ "idna==3.18",
+ "importlib_resources==7.1.0",
+ "jax==0.4.14",
+ "jaxlib==0.4.14+cuda11.cudnn86",
+ "keras==2.15.0",
+ "kiwisolver==1.5.0",
+ "libclang==18.1.1",
+ "markdown-it-py==4.2.0",
+ "matplotlib==3.8.0",
+ "mdurl==0.1.2",
+ "ml-dtypes==0.3.2",
+ "msgpack==1.2.1",
+ "nest-asyncio==1.6.0",
+ "numpy==1.25.2",
+ "nvidia-cublas-cu117==11.10.1.25",
+ "nvidia-cublas-cu11==11.11.3.6",
+ "nvidia-cuda-cupti-cu117==11.7.50",
+ "nvidia-cuda-cupti-cu11==11.8.87",
+ "nvidia-cuda-nvcc-cu117==11.7.64",
+ "nvidia-cuda-nvcc-cu11==2022.5.4",
+ "nvidia-cuda-runtime-cu117==11.7.60",
+ "nvidia-cuda-runtime-cu11==11.8.89",
+ "nvidia-cudnn-cu116==8.4.0.27",
+ "nvidia-cudnn-cu11==8.6.0.163",
+ "nvidia-cufft-cu117==10.7.2.50",
+ "nvidia-cufft-cu11==10.9.0.58",
+ "nvidia-curand-cu11==10.3.0.86",
+ "nvidia-cusolver-cu117==11.3.5.50",
+ "nvidia-cusolver-cu11==11.4.1.48",
+ "nvidia-cusparse-cu117==11.7.3.50",
+ "nvidia-cusparse-cu11==11.7.5.86",
+ "nvidia-nccl-cu11==2.19.3",
+ "oauthlib==3.3.1",
+ "opt_einsum==3.4.0",
+ "optax==0.1.7",
+ "orbax-checkpoint==0.3.5",
+ "packaging==26.0",
+ "pandas==2.3.3",
+ "pillow==12.3.0",
+ "promise==2.3",
+ "protobuf==3.20.3",
+ "psutil==7.2.2",
+ "pyasn1==0.6.4",
+ "pyasn1_modules==0.4.2",
+ "pycparser==3.0",
+ "pyparsing==3.3.2",
+ "python-dateutil==2.9.0.post0",
+ "pytz==2026.2",
+ "requests-oauthlib==2.0.0",
+ "requests==2.34.2",
+ "rich==15.0.0",
+ "scipy==1.11.4",
+ "seaborn==0.13.2",
+ "six==1.17.0",
+ "tensorboard-data-server==0.7.2",
+ "tensorboard==2.15.2",
+ "tensorflow-datasets==4.9.4",
+ "tensorflow-estimator==2.15.0",
+ "tensorflow-io-gcs-filesystem==0.37.1",
+ "tensorflow-metadata==1.15.0",
+ "tensorflow==2.15.1",
+ "tensorstore==0.1.74",
+ "termcolor==3.3.0",
+ "toml==0.10.2",
+ "toolz==1.1.0",
+ "tqdm==4.69.0",
+ "typing_extensions==4.16.0",
+ "tzdata==2026.3",
+ "urllib3==2.7.0",
+ "wrapt==1.14.2",
+ "zipp==4.1.0"
+ ],
+ "pip_freeze_sha256": "ea5bd886c4dcc61041aef10f12cf1a21ac018ae3e13cd64c64e3d90d5b1daf59",
+ "python_executable": "/scratch/yurenh2/venvs/dualprop/bin/python",
+ "python_version": "3.10.20 (main, Jun 11 2026, 15:17:37) [GCC 14.3.0]"
+ },
+ "schema_version": 1,
+ "seed": 1988,
+ "source_provenance": {
+ "path": "/scratch/yurenh2/sdil-reference/dualprop_icml_2024",
+ "revision": "7b2595b34421e1483a721dbfdeff8cdabda3a1ff",
+ "tracked_dirty": false
+ }
+}
diff --git a/results/native_baseline_audit.md b/results/native_baseline_audit.md
new file mode 100644
index 0000000..73262db
--- /dev/null
+++ b/results/native_baseline_audit.md
@@ -0,0 +1,24 @@
+# Native author-code baseline audit
+
+Both records passed the strict C4 artifact, source, protocol, environment,
+dataset, completeness, finiteness, selection, and cost-definition checks.
+These are method-native reproductions, not equal-compute comparisons with SDIL.
+
+| method | reproduced seed | primary test (%) | validation-selected test (%) | test-selected test (%) | published (%) | audited wall (s) |
+|:--|--:|--:|--:|--:|--:|--:|
+| BurstCCN | 0 | 80.070 | 80.100 | 80.250 | 82.97 ± 0.21 | 15451.3 |
+| Dual Prop | 1988 | 92.460 | 92.460 | — | 92.41 ± 0.07 | 23119.8 |
+
+BurstCCN's primary metric is its final epoch. Its validation-selected metric is
+the test accuracy from the minimum-validation-error epoch; its best test value
+is explicitly test-selected because the native trainer evaluates test every
+epoch. The `n_epochs=400` author configuration performs an epoch-0 evaluation
+and 399 optimization epochs. Dual Prop evaluates test once after restoring the
+best-validation checkpoint, so its primary and validation-selected values are
+identical and no test-selected value exists.
+
+The BurstCCN wall value is W&B run time through the final epoch log. The Dual
+Prop wall value sums author-measured train, validation, and final test time and
+excludes setup, checkpoint I/O, and diagnostic plotting. One reproduced seed
+establishes executable fidelity; published multi-seed uncertainty is retained
+for context and is not replaced by a one-seed error bar.