diff options
| author | YurenHao0426 <Blackhao0426@gmail.com> | 2026-07-22 12:19:44 -0500 |
|---|---|---|
| committer | YurenHao0426 <Blackhao0426@gmail.com> | 2026-07-22 12:19:44 -0500 |
| commit | 9763a8ecf4d614370cfde3ff926c5070ab766433 (patch) | |
| tree | 4ed0b067bfcf4a16f811f37b5723d728ffb5db74 /results | |
| parent | 04de9326e60bb9e3592c0ddb5474265d228cbce0 (diff) | |
baselines: complete native author-code audit
Diffstat (limited to 'results')
| -rw-r--r-- | results/native/dualprop_cifar10_vgg16_a0_b0p1_seed1988.json | 287 | ||||
| -rw-r--r-- | results/native_baseline_audit.md | 24 |
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. |
