docs: e2e verification + Keras from_logits loss-instance fix
Browse files
docs/ARCHITECTURE_PARAM_OWNERSHIP.md
CHANGED
|
@@ -174,6 +174,15 @@ no-selection state) lets the user enable/clear training, pick an optimizer + LR
|
|
| 174 |
loss, and shows the live `train_summary` projected from Rust. It dispatches
|
| 175 |
`set_train_config` through the zustand store. `npm run build` (tsc + vite) passes.
|
| 176 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 177 |
## Test coverage
|
| 178 |
98 Rust tests pass (0 warnings) — added `loss_mean_is_scalar_none_is_elementwise`,
|
| 179 |
`cross_entropy_none_drops_class_axis` (nflow-ops) and `pytorch_loss_in_forward`,
|
|
|
|
| 174 |
loss, and shows the live `train_summary` projected from Rust. It dispatches
|
| 175 |
`set_train_config` through the zustand store. `npm run build` (tsc + vite) passes.
|
| 176 |
|
| 177 |
+
**End-to-end verification:** `examples/e2e_intents.rs` builds an MLP classifier
|
| 178 |
+
(Input→Linear64→ReLU→Linear10→Output) entirely through `Session` intents — the
|
| 179 |
+
exact vocabulary the UI uses — attaches a TrainConfig via `SetTrainConfig`, and
|
| 180 |
+
exports both backends. The exported code was run verbatim: PyTorch trains
|
| 181 |
+
(loss 2.32→2.00), Keras `compile()/fit()` trains (2.51→2.28). The Keras emitter
|
| 182 |
+
now emits the compile-loss as a proper **instance with `from_logits=True`** for
|
| 183 |
+
logit-producing losses (the graph emits raw logits) — the string form would
|
| 184 |
+
default to `from_logits=False` and be numerically wrong.
|
| 185 |
+
|
| 186 |
## Test coverage
|
| 187 |
98 Rust tests pass (0 warnings) — added `loss_mean_is_scalar_none_is_elementwise`,
|
| 188 |
`cross_entropy_none_drops_class_axis` (nflow-ops) and `pytorch_loss_in_forward`,
|