Rename neural experiments to descriptive paths (drop N* codes)
configs/neural/{N0,N1,N2,N5}.yaml -> {bridge,collapse,grounding,architectures}.yaml,
results dirs likewise. Updated experiment/output.dir fields, comments/docstrings, and
docs; regenerated the four result manifests (now carrying the real git commit). No
functional path resolution referenced the codes (the Makefile globs configs/neural/*.yaml
and tests use inline configs), so nothing breaks. 92 tests green.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
840b6b00b3
commit
aca7b394a3
21 changed files with 82 additions and 78 deletions
10
CLAUDE.md
10
CLAUDE.md
|
|
@ -13,10 +13,12 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
|||
models* (histogram bridge + RNN + MLP; VAE implemented but not fidelity-passing) on a
|
||||
fully-synthetic sandbox with an exact oracle, plus real MNIST as a later secondary tier. See
|
||||
`tasks/todo.md` for status and `~/.claude/plans/we-are-going-to-cheerful-fog.md` for the plan.
|
||||
**Done:** scaffold, the histogram bridge gate (reproduces Layer 1 exactly), N0 (bridge, neural
|
||||
g*=0.047 ≈ Layer 1), N1 (collapse in RNN weights), N2 (neural phase boundary), N5
|
||||
(architecture-generality). **Remaining:** N4 (mean-vs-max-merge, load-bearing), N3, N6, figures,
|
||||
the MNIST tier. The LLM/LoRA rung and the C3 vertical claim are deferred.
|
||||
**Done:** scaffold, the histogram bridge gate (reproduces Layer 1 exactly), `bridge` (neural
|
||||
g*=0.047 ≈ Layer 1), `collapse` (in RNN weights), `grounding` (neural phase boundary),
|
||||
`architectures` (architecture-generality). **Remaining:** `recombination` (mean-vs-max-merge,
|
||||
load-bearing), `region_matched`, `remint`, figures, the MNIST tier. The LLM/LoRA rung and the C3
|
||||
vertical claim are deferred. Experiments are named descriptively (`configs/neural/<name>.yaml`),
|
||||
not by code.
|
||||
|
||||
The two design documents are the source of truth for intent:
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
experiment: N5_architecture_generality
|
||||
experiment: architecture_generality
|
||||
kind: gen_lineage
|
||||
seed: 20260704
|
||||
n_replicates: 5
|
||||
|
||||
# N5 (a new Layer-1.5 axis, no Layer-1 counterpart): is collapse ARCHITECTURE-GENERAL?
|
||||
# (a new Layer-1.5 axis, no Layer-1 counterpart): is collapse ARCHITECTURE-GENERAL?
|
||||
# Run the same dry-vs-grounded protocol across three genuinely different learners that
|
||||
# share only the generative-collapse operator: the exact histogram (= Wright-Fisher, the
|
||||
# analytic anchor), an autoregressive GRU (recurrent), and an autoregressive MLP (feed-
|
||||
|
|
@ -51,4 +51,4 @@ sweep:
|
|||
values: [0.0, 0.05]
|
||||
|
||||
output:
|
||||
dir: results/N5
|
||||
dir: results/architectures
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
experiment: N0_bridge_histogram
|
||||
experiment: bridge_histogram
|
||||
kind: gen_lineage
|
||||
seed: 20260704
|
||||
n_replicates: 60
|
||||
|
|
@ -39,4 +39,4 @@ sweep:
|
|||
values: [0.0, 0.005, 0.01, 0.02, 0.05, 0.1, 0.2, 0.4]
|
||||
|
||||
output:
|
||||
dir: results/N0
|
||||
dir: results/bridge
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
experiment: N1_collapse_in_weights
|
||||
experiment: collapse_in_weights
|
||||
kind: gen_lineage
|
||||
seed: 20260704
|
||||
n_replicates: 5
|
||||
|
||||
# N1 (Layer 1.5, maps to Layer-1 E1 / blueprint C1): does model collapse appear in REAL
|
||||
# (maps to Layer-1 E1 / blueprint C1): does model collapse appear in REAL
|
||||
# trained weights under dry recursive self-training, and does a little grounding arrest it?
|
||||
# An autoregressive RNN is retrained each generation on n samples drawn from the previous
|
||||
# generation's RNN (drift), optionally mixed with m verifier-grounded samples. Expect: the
|
||||
|
|
@ -47,4 +47,4 @@ sweep:
|
|||
values: [0.0, 0.02, 0.05, 0.1]
|
||||
|
||||
output:
|
||||
dir: results/N1
|
||||
dir: results/collapse
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
experiment: N2_grounding_phase_boundary_neural
|
||||
experiment: grounding_phase_boundary
|
||||
kind: gen_lineage
|
||||
seed: 20260704
|
||||
n_replicates: 5
|
||||
|
||||
# N2 (Layer 1.5 headline, maps to Layer-1 E2): the grounding phase boundary in REAL weights.
|
||||
# (Layer 1.5 headline, maps to Layer-1 E2): the grounding phase boundary in REAL weights.
|
||||
# Sweep the grounding fraction g = m/(n+m) and locate the neural critical g* at which
|
||||
# stationary diversity is restored. Layer 1 found g* = 0.048 << 1. The neural regime (finite
|
||||
# model capacity, a smaller K so gen-0 fidelity holds) will not reproduce that value exactly
|
||||
|
|
@ -47,4 +47,4 @@ sweep:
|
|||
values: [0.0, 0.005, 0.01, 0.02, 0.05, 0.1, 0.2]
|
||||
|
||||
output:
|
||||
dir: results/N2
|
||||
dir: results/grounding
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
{
|
||||
"experiment": "N0_bridge_histogram",
|
||||
"master_seed": 20260704,
|
||||
"git_commit": null,
|
||||
"python": "3.14.5",
|
||||
"libraries": {
|
||||
"numpy": "2.5.0",
|
||||
"scipy": "1.18.0",
|
||||
"pandas": "3.0.3",
|
||||
"pyarrow": "24.0.0"
|
||||
},
|
||||
"rows": 96480,
|
||||
"results_sha256": "445fd5165fc69edbca87f79c0cf669b5879025637f4d36ddc769e940fb02f114",
|
||||
"layer": "1.5",
|
||||
"model_kind": "histogram"
|
||||
}
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"experiment": "N5_architecture_generality",
|
||||
"experiment": "architecture_generality",
|
||||
"master_seed": 20260704,
|
||||
"git_commit": null,
|
||||
"git_commit": "840b6b00b35ea3f69ef7e0f531914986f88d74a5",
|
||||
"python": "3.14.5",
|
||||
"libraries": {
|
||||
"numpy": "2.5.0",
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
"torch": "2.12.1"
|
||||
},
|
||||
"rows": 690,
|
||||
"results_sha256": "4e8d7931e791493aa35ea7b114d81b90a3a58eabd92d8b1dbd87cf0a9e200ba1",
|
||||
"results_sha256": "8f44a15e66c638fc0c717dab9b9d3feedad1cb4cee1890159a325f884677b32e",
|
||||
"layer": "1.5",
|
||||
"model_kind": "rnn"
|
||||
}
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
experiment: N5_architecture_generality
|
||||
experiment: architecture_generality
|
||||
seed: 20260704
|
||||
n_replicates: 5
|
||||
source_config:
|
||||
experiment: N5_architecture_generality
|
||||
experiment: architecture_generality
|
||||
kind: gen_lineage
|
||||
seed: 20260704
|
||||
n_replicates: 5
|
||||
|
|
@ -49,7 +49,7 @@ source_config:
|
|||
- 0.0
|
||||
- 0.05
|
||||
output:
|
||||
dir: results/N5
|
||||
dir: results/architectures
|
||||
grid:
|
||||
- label:
|
||||
kind: histogram
|
||||
17
results/bridge/manifest.json
Normal file
17
results/bridge/manifest.json
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"experiment": "bridge_histogram",
|
||||
"master_seed": 20260704,
|
||||
"git_commit": "840b6b00b35ea3f69ef7e0f531914986f88d74a5",
|
||||
"python": "3.14.5",
|
||||
"libraries": {
|
||||
"numpy": "2.5.0",
|
||||
"scipy": "1.18.0",
|
||||
"pandas": "3.0.3",
|
||||
"pyarrow": "24.0.0",
|
||||
"torch": "2.12.1"
|
||||
},
|
||||
"rows": 96480,
|
||||
"results_sha256": "c4e96e1e0ff01b103624a2ca6ac7508d4482df79224336f6a76debab3f93428c",
|
||||
"layer": "1.5",
|
||||
"model_kind": "histogram"
|
||||
}
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
experiment: N0_bridge_histogram
|
||||
experiment: bridge_histogram
|
||||
seed: 20260704
|
||||
n_replicates: 60
|
||||
source_config:
|
||||
experiment: N0_bridge_histogram
|
||||
experiment: bridge_histogram
|
||||
kind: gen_lineage
|
||||
seed: 20260704
|
||||
n_replicates: 60
|
||||
|
|
@ -44,7 +44,7 @@ source_config:
|
|||
- 0.2
|
||||
- 0.4
|
||||
output:
|
||||
dir: results/N0
|
||||
dir: results/bridge
|
||||
grid:
|
||||
- label:
|
||||
g: 0.0
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"experiment": "N1_collapse_in_weights",
|
||||
"experiment": "collapse_in_weights",
|
||||
"master_seed": 20260704,
|
||||
"git_commit": null,
|
||||
"git_commit": "840b6b00b35ea3f69ef7e0f531914986f88d74a5",
|
||||
"python": "3.14.5",
|
||||
"libraries": {
|
||||
"numpy": "2.5.0",
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
"torch": "2.12.1"
|
||||
},
|
||||
"rows": 520,
|
||||
"results_sha256": "27438db70af3240524855e59c4a14d3fb63bf6fca2d2002cdcb1ac354559909b",
|
||||
"results_sha256": "4f3642005e383b07826c3f36c888485005d710f15fb2773a6295d672f6c9af4d",
|
||||
"layer": "1.5",
|
||||
"model_kind": "rnn"
|
||||
}
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
experiment: N1_collapse_in_weights
|
||||
experiment: collapse_in_weights
|
||||
seed: 20260704
|
||||
n_replicates: 5
|
||||
source_config:
|
||||
experiment: N1_collapse_in_weights
|
||||
experiment: collapse_in_weights
|
||||
kind: gen_lineage
|
||||
seed: 20260704
|
||||
n_replicates: 5
|
||||
|
|
@ -46,7 +46,7 @@ source_config:
|
|||
- 0.05
|
||||
- 0.1
|
||||
output:
|
||||
dir: results/N1
|
||||
dir: results/collapse
|
||||
grid:
|
||||
- label:
|
||||
g: 0.0
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"experiment": "N2_grounding_phase_boundary_neural",
|
||||
"experiment": "grounding_phase_boundary",
|
||||
"master_seed": 20260704,
|
||||
"git_commit": null,
|
||||
"git_commit": "840b6b00b35ea3f69ef7e0f531914986f88d74a5",
|
||||
"python": "3.14.5",
|
||||
"libraries": {
|
||||
"numpy": "2.5.0",
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
"torch": "2.12.1"
|
||||
},
|
||||
"rows": 1085,
|
||||
"results_sha256": "93590677221955189814ccf044b9dc8aee36b026e350c9dea7e8d23b137e514b",
|
||||
"results_sha256": "ca87a339c207adb50953df0f81297fed24d24d98b71e2911709f9708b00ede2d",
|
||||
"layer": "1.5",
|
||||
"model_kind": "rnn"
|
||||
}
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
experiment: N2_grounding_phase_boundary_neural
|
||||
experiment: grounding_phase_boundary
|
||||
seed: 20260704
|
||||
n_replicates: 5
|
||||
source_config:
|
||||
experiment: N2_grounding_phase_boundary_neural
|
||||
experiment: grounding_phase_boundary
|
||||
kind: gen_lineage
|
||||
seed: 20260704
|
||||
n_replicates: 5
|
||||
|
|
@ -49,7 +49,7 @@ source_config:
|
|||
- 0.1
|
||||
- 0.2
|
||||
output:
|
||||
dir: results/N2
|
||||
dir: results/grounding
|
||||
grid:
|
||||
- label:
|
||||
g: 0.0
|
||||
|
|
@ -6,7 +6,7 @@ provenance helpers, and its output contract (``save_artifacts``). Only the per-r
|
|||
the config key set differ: a neural run trains generative models rather than resampling a
|
||||
frequency vector, and its config groups are ``synthetic``/``model``/``dynamics``/... .
|
||||
|
||||
CLI: python -m neural.experiment configs/neural/N0.yaml
|
||||
CLI: python -m neural.experiment configs/neural/bridge.yaml
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
|
@ -98,7 +98,7 @@ def run_and_save(config_path: str | Path) -> Path:
|
|||
out_dir = Path(cfg.get("output", {}).get("dir", f"results/{cfg['experiment']}"))
|
||||
kind = cfg.get("kind", "gen_lineage")
|
||||
if kind == "recombination":
|
||||
from .recombine import run_recombination # Stage C (N4); imported lazily
|
||||
from .recombine import run_recombination # the `recombination` experiment; lazy import
|
||||
df = run_recombination(cfg)
|
||||
grid = None
|
||||
elif kind == "gen_lineage":
|
||||
|
|
@ -114,7 +114,7 @@ def run_and_save(config_path: str | Path) -> Path:
|
|||
|
||||
def main(argv: list[str] | None = None) -> None:
|
||||
parser = argparse.ArgumentParser(description="Run a Layer-1.5 neural experiment from a YAML config.")
|
||||
parser.add_argument("config", help="Path to configs/neural/NX.yaml")
|
||||
parser.add_argument("config", help="Path to configs/neural/<name>.yaml")
|
||||
args = parser.parse_args(argv)
|
||||
out_dir = run_and_save(args.config)
|
||||
print(f"wrote artifacts to {out_dir}/")
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ def run_generative_lineage(cfg: Mapping[str, Any] | NeuralLineageCfg,
|
|||
grounding = cfg.dynamics.grounding
|
||||
exercised = np.asarray(grounding.exercised) if grounding.exercised is not None else None
|
||||
m_vector = allocate_m(grounding.m, R, grounding.policy, exercised)
|
||||
p_star_eff = p_star_orig.copy() # grounding reference; may be re-minted (N6)
|
||||
p_star_eff = p_star_orig.copy() # grounding reference; may be re-minted (`remint`)
|
||||
remint = cfg.dynamics.remint
|
||||
n = cfg.dynamics.n
|
||||
|
||||
|
|
@ -105,7 +105,7 @@ def run_generative_lineage(cfg: Mapping[str, Any] | NeuralLineageCfg,
|
|||
|
||||
if remint.enabled and remint.period and t % remint.period == 0:
|
||||
# Founder event: current distribution becomes the new grounding reference and
|
||||
# the original truth is discarded for grounding. Gated on diversity (N6).
|
||||
# the original truth is discarded for grounding. Gated on diversity (`remint`).
|
||||
if remint.H_gate is None or heterozygosity(p) >= remint.H_gate:
|
||||
p_star_eff = p.copy()
|
||||
record(t, p)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
Every model implements the same three-method protocol: ``fit`` on a batch of token
|
||||
sequences, ``sample`` fresh token sequences, and report its ``mode_distribution`` (the
|
||||
model's ``p_t``). Keeping the interface identical is what makes "collapse is
|
||||
architecture-general" (experiment N5) a single sweep over ``model.kind``.
|
||||
architecture-general" (the `architectures` experiment) a single sweep over ``model.kind``.
|
||||
|
||||
``HistogramModel`` is the bridge: its ``fit`` is a maximum-likelihood mode histogram and
|
||||
its ``sample`` is a multinomial draw, so a lineage of histogram models is *exactly*
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
"""Autoregressive MLP generative model (Stage C, for the N5 architecture-generality axis).
|
||||
"""Autoregressive MLP generative model (Stage C, for the `architectures` generality axis).
|
||||
|
||||
A causal feed-forward next-token model: token ``i`` is predicted from the concatenated
|
||||
(causally-masked) embeddings of all earlier tokens. Deliberately a *different* inductive
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
Each model implements the same ``GenerativeModel`` protocol as the histogram bridge
|
||||
(``initialise`` / ``fit`` / ``sample`` / ``mode_distribution``), so a lineage is
|
||||
architecture-agnostic and N5 is a single sweep over ``model.kind``. Unlike the histogram
|
||||
architecture-agnostic and the `architectures` experiment is a single sweep over ``model.kind``. Unlike the histogram
|
||||
model, a neural model's ``mode_distribution`` is *estimated* by generate-and-classify
|
||||
(``n_eval`` samples), which is the honest, slightly-noisy neural readout of ``p_t``.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
"""Sequence VAE generative model (Stage C, for the N5 architecture-generality axis).
|
||||
"""Sequence VAE generative model (Stage C, for the `architectures` generality axis).
|
||||
|
||||
A GRU encoder maps a token sequence to a Gaussian latent ``z``; a GRU decoder (its initial
|
||||
hidden state projected from ``z``) reconstructs the sequence. Trained by the ELBO
|
||||
|
|
|
|||
|
|
@ -151,12 +151,13 @@ C3 vertical claim deferred.*
|
|||
`run_lineage` directly (<3%). The neural plumbing reproduces the analytic core.
|
||||
- **Plumbing:** `neural/experiment.py` (`run_and_save` dispatch on `kind`, reuses `_apply_param`
|
||||
g→m, paired seeds); extended `knowledge.experiment.save_artifacts` (optional `extra_libs`,
|
||||
`extra_manifest`, injectable `grid`; skips missing libs — backward compatible). `configs/neural/N0.yaml`,
|
||||
Makefile `neural`/`env-neural`/`layer2` targets, `.gitignore`.
|
||||
- **N0 result (bridge, 17s):** neural **g\* = 0.0474, CI [0.045, 0.052]** — reproduces Layer-1 E2's
|
||||
`extra_manifest`, injectable `grid`; skips missing libs — backward compatible). `configs/neural/bridge.yaml`,
|
||||
Makefile `neural`/`env-neural`/`layer2` targets, `.gitignore`. (Experiments are named
|
||||
descriptively — `bridge`, `collapse`, `grounding`, `architectures` — not by code.)
|
||||
- **`bridge` result (17s):** neural **g\* = 0.0474, CI [0.045, 0.052]** — reproduces Layer-1 E2's
|
||||
g\*=0.048 essentially exactly (g=0.005→67% of H*, g=0.05→96%). **89 tests green.**
|
||||
|
||||
**2026-07-04 — Stage C: torch models + N1/N2/N5.**
|
||||
**2026-07-04 — Stage C: torch models + collapse/grounding/architectures.**
|
||||
|
||||
- **Env:** torch **2.12.1+cu130** (default PyPI wheel ships CUDA 13, matches RTX A4000 driver;
|
||||
no custom index needed, cp314 wheels exist). `--extra neural` = torch only; `--extra mnist` =
|
||||
|
|
@ -168,16 +169,16 @@ C3 vertical claim deferred.*
|
|||
- **Validated regime:** K=256, n=200, zipf_s=1.3, RNN hidden=128/epochs=25. RNN gen-0 fidelity
|
||||
KL(p*‖p̂)=0.008, 64/64 (or 256/256) modes recovered. MLP fidelity KL=0.011. **VAE does NOT clear
|
||||
the gen-0 gate** on the Zipf-codeword task (KL≈0.8; prior-hole mismatch — sampling z~N(0,I) misses
|
||||
the aggregate posterior) → excluded from N5 to avoid confounding collapse with underfitting.
|
||||
- **N1 (collapse in weights):** dry RNN lineage collapses — forward-KL rises to ~2.2 vs grounded
|
||||
the aggregate posterior) → excluded from `architectures` to avoid confounding collapse with underfitting.
|
||||
- **`collapse` (in weights):** dry RNN lineage collapses — forward-KL rises to ~2.2 vs grounded
|
||||
~1.4; grounding lifts tail survival (tailalive 0.31 dry → 0.50 at g=0.02). Sign confirmed.
|
||||
- **N2 (neural phase boundary):** stationary H hovers 80–91% of H* and is **noisy / non-monotonic**
|
||||
- **`grounding` (neural phase boundary):** stationary H hovers 80–91% of H* and is **noisy / non-monotonic**
|
||||
at 5 reps — no crisp g*. **KEY FINDING:** the neural models' smoothing inductive bias *partially
|
||||
resists* H-collapse (dry H stays ~83% of H*), so **forward-KL and tail survival are the sharp
|
||||
neural collapse metrics, not H** (mirrors Layer-1's "H is smooth; the threshold lives in tail
|
||||
survival"). N2 needs (a) forward-KL as the phase metric, (b) more reps (≥10), and/or (c) a
|
||||
survival"). `grounding` needs (a) forward-KL as the phase metric, (b) more reps (≥10), and/or (c) a
|
||||
stronger-collapse regime for a clean neural g*.
|
||||
- **N5 (architecture-generality) — clean result:** collapse + grounding-rescue appear in ALL three
|
||||
- **`architectures` (architecture-generality) — clean result:** collapse + grounding-rescue appear in ALL three
|
||||
model classes (dry→grounded forward-KL: histogram 6.2→4.6, MLP 4.8→1.3, RNN 3.8→1.1; tailalive
|
||||
RNN 0.41→0.64, MLP 0.07→0.20). The WF operator is architecture-general. Bonus: neural smoothing
|
||||
lets RNN/MLP retain *more* tail than the exact histogram under grounding (they generalise to
|
||||
|
|
@ -185,16 +186,16 @@ C3 vertical claim deferred.*
|
|||
|
||||
## Remaining
|
||||
|
||||
- [ ] **N2 refinement:** re-run with forward-KL as the phase metric + ≥10 reps (and/or smaller n)
|
||||
for a clean neural g*. Pin the falsifier ("g* ≪ 1 exists") before re-running.
|
||||
- [ ] **N4 (load-bearing):** `recombine.py` — mean-mixture vs union-preserving merge. The neural
|
||||
merge MUST be **oracle-guided mixture sampling** (sample from the teacher strongest on each mode),
|
||||
NOT weight-averaging of recurrent nets (flag #7). Reproduce the E4 "mean flat, max rises" finding.
|
||||
- [ ] **N3** region-matched grounding (R>1), **N6** re-mint gate (optional).
|
||||
- [ ] **`grounding` refinement:** re-run with forward-KL as the phase metric + ≥10 reps (and/or
|
||||
smaller n) for a clean neural g*. Pin the falsifier ("g* ≪ 1 exists") before re-running.
|
||||
- [ ] **`recombination` (load-bearing):** `recombine.py` — mean-mixture vs union-preserving merge.
|
||||
The neural merge MUST be **oracle-guided mixture sampling** (sample from the teacher strongest on
|
||||
each mode), NOT weight-averaging of recurrent nets. Reproduce the E4 "mean flat, max rises" finding.
|
||||
- [ ] **`region_matched`** grounding (R>1), **`remint`** re-mint gate (optional).
|
||||
- [ ] **VAE fidelity:** fix the prior-hole mismatch (KL-annealing / free-bits / larger latent) so it
|
||||
clears the gen-0 gate, then add to N5. Or document as a known limitation.
|
||||
clears the gen-0 gate, then add to `architectures`. Or document as a known limitation.
|
||||
- [ ] Real-MNIST secondary tier (`ClassifierOracle` + confusion matrix; `--extra mnist`).
|
||||
- [ ] `figures/plot_N*.py` (reuse `figures/_figlib.py`); wire into `make figures`.
|
||||
- [ ] `figures/plot_<name>.py` (reuse `figures/_figlib.py`); wire into `make figures`.
|
||||
|
||||
## Discovered during work
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue