56 Commits
Author SHA1 Message Date
jensandClaude Sonnet 5 5736541744 Mark mnist_h32 as a known issue instead of a plain FAIL
Its saved weights load fine but genuinely reconstruct worse than the
mean baseline (likely an under-trained or abandoned snapshot) -- a data
problem, not a code bug, and retraining is out of scope for now. Add a
KNOWN_ISSUES map so cases like this report SKIP with a reason instead of
FAIL, and stop counting toward the suite's failure exit code, while
still being visible in the output. norb_small_16h_v2/many (missing
weight files entirely) remain plain FAILs since that wasn't in scope
for this change.

9 passed, 1 known issue, 2 failed (12 total).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016K8Gu7Qejd11JbdiHZqYAs
2026-07-27 15:04:04 +02:00
jensandClaude Sonnet 5 af35c0902d Add mnist to the test suite
Single-layer Deep stack (28x28->256), has saved weights and a larger
training batch than the other mnist variants (test run took noticeably
longer). Passes: reconstruction error 0.005 vs. mean-baseline 0.067.
9/12 pass.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016K8Gu7Qejd11JbdiHZqYAs
2026-07-27 15:01:31 +02:00
jensandClaude Sonnet 5 10cdd6fb9b Add mnist_21 to the test suite
3-layer Deep stack (28x28->256->512->64), has saved weights for all
three layers. Passes: reconstruction error 0.039 vs. mean-baseline
0.063. 8/11 pass.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016K8Gu7Qejd11JbdiHZqYAs
2026-07-27 14:59:43 +02:00
jensandClaude Sonnet 5 db7eb72174 Add mnist_h32 to the test suite
Single-layer Deep stack (28x28->32), weights load fine but genuinely
fail the reconstruction check: error 0.231 vs. mean-baseline 0.067,
worse than the 1.5x tolerance. Unlike norb_small_16h_v2/many (which fail
because no current-format weights exist at all), this one has weights
that load successfully but just don't reconstruct well -- training
params look ordinary (RaoBlackwell, 1000 epochs) and the training data
looks like normal-scale MNIST pixels, so this looks like a genuinely
under-trained or abandoned saved snapshot rather than a test bug.
7/11 pass.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016K8Gu7Qejd11JbdiHZqYAs
2026-07-27 14:58:04 +02:00
jensandClaude Sonnet 5 86764bb261 Add mnist_deep to the test suite
3-layer Deep stack (28x28->256->256->16), has saved weights for all
three layers. Passes: reconstruction error 0.039 vs. mean-baseline 0.067.
7/9 pass.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016K8Gu7Qejd11JbdiHZqYAs
2026-07-27 14:54:54 +02:00
jensandClaude Sonnet 5 7b842ea50c Add many to the test suite
101-layer Deep stack (64->64 x100). Fails the same way as
norb_small_16h_v2: only legacy *.weights.dat files exist (the pre-split
combined-weights format current code never reads), no .w/.bh/.bv.dat for
any layer -- a pre-existing data gap, not a bug. 6/8 pass.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016K8Gu7Qejd11JbdiHZqYAs
2026-07-27 14:52:13 +02:00
jensandClaude Sonnet 5 1acc05bc24 Add count to the test suite
Single-layer Deep stack (4x2->16), has saved weights and training data.
Passes: reconstruction error ~0.000000 vs. mean-baseline 0.16.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016K8Gu7Qejd11JbdiHZqYAs
2026-07-27 14:51:27 +02:00
jensandClaude Sonnet 5 82d019ba48 Add prims_deep to the test suite
2-layer DeepStack (9x9->24, 24->4), has saved weights and training data.
Passes: reconstruction error 0.0007 vs. mean-baseline 0.14 -- exercises
upDownPass through more than one layer for the first time in the suite.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016K8Gu7Qejd11JbdiHZqYAs
2026-07-27 14:50:14 +02:00
jensandClaude Sonnet 5 156babeb49 Add norb_small_16h to the test suite
Has saved weights and training data (unlike norb_small_16h_v2, which
still has none). Passes: reconstruction error 0.0003 vs. mean-baseline
0.54.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016K8Gu7Qejd11JbdiHZqYAs
2026-07-27 14:49:15 +02:00
jensandClaude Sonnet 5 834723dcad Replace stale main.cpp with a minimal project test suite
The old main.cpp (TEST target) called APIs that no longer exist
(DeepStack::load()/loadWeights()/loadTrainingBatch() with no args,
Layer::upDownPass()) -- it hadn't compiled against the current AStack/
Layer API in a long time and was a manual smoke-test script, not an
actual test suite.

Replace it with a small dependency-free runner matching this repo's
existing no-framework style: for each named project, load it, load
weights and training batch, run a full up-pass/down-pass reconstruction
via DeepStack::upDownPass, and check the reconstruction error is finite
and beats the trivial per-feature-mean baseline (a project-agnostic sanity
bound, rather than a hardcoded threshold). Prints PASS/FAIL per project.

Starting coverage: 1-hot, prims, norb_small_16h_v2, mnist_2. 3/4 pass;
norb_small_16h_v2 fails because it has no saved weight files at all
(only .prj/.training.dat/.test.dat) -- a pre-existing gap in that
fixture's data, not a bug introduced here.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016K8Gu7Qejd11JbdiHZqYAs
2026-07-27 14:47:32 +02:00
jens f805b571d9 commit stale changes 2026-07-26 21:49:32 +02:00
jens 084c4902d8 - refactored
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@815 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-16 13:35:57 +00:00
jens 3dcfb6611b - removed unused code
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@793 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-12 14:13:35 +00:00
jens fa2014b4dd - trainingdata always contains context
- load / store training batch with context
- on load: add context part to  legacy training batches 
- removed Rbm::setBatch()

git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@790 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-12 08:12:35 +00:00
jens 67815bf5c6 - Test app: use context99 which crashes. Fix next time
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@788 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-11 19:16:13 +00:00
jens c6e8c89d39 - improved test
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@787 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-11 19:13:47 +00:00
jens eacefc1e80 - added passes to layer
- removed redundancy


git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@784 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-11 16:46:01 +00:00
jens d18b45ef50 - test app : fixed status update
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@783 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-10 17:12:21 +00:00
jens d5ec722aba - use dir in file names
- fixed missing returns
- fixed test app

git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@782 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-10 17:05:51 +00:00
jens ff2086a1ff - refactored
- use Armadillo for load/save of weight and training data

git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@775 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-10 15:25:52 +00:00
jens 9593aea278 - some info log during training load/save
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@659 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-11 20:41:01 +00:00
jens 9ea6e48fff - improved progressIndicator
- fixed Stack::trainingData()
- fixed test::main

git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@638 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-08 06:38:09 +00:00
jens 5d281ddca6 - added Stack::loadTraining(), Stack::addTraing(), Stack::delTraining()
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@623 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-07 15:24:23 +00:00
jens d5959d9ea2 - create Rbm
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@616 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-07 13:09:17 +00:00
jens 10aff804f0 Rbm: added assertion check for params
- improved creation of stack

git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@609 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-07 07:39:13 +00:00
jens 1025fc82c1 - create proper test.prj
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@608 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-06 06:28:45 +00:00
jens b20604e4f4 - Rbm: fixed parameter import
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@607 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-06 06:24:48 +00:00
jens 3ef7b07f5e - moved numEpochs and miniBatchSize to RBM::Params
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@606 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-06 06:12:51 +00:00
jens 6de0605c01 - weightsInit only on create
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@603 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-10-29 07:48:08 +00:00
jens e254521759 - no weighInit in prj
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@600 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-10-29 07:07:02 +00:00
jens 595be173b1 - more compact
- added Stack::weights init
- create smaller test.prj

git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@596 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-10-28 22:53:29 +00:00
jens 7a9453594b - more compact creation of Stack
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@595 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-10-28 20:15:45 +00:00
jens 0f1631fe60 - refactored
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@594 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-10-28 20:05:58 +00:00
jens 43dc764daa - added projects and training data
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@592 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-10-28 19:27:20 +00:00
jens e2bd0ee850 - rbm: no training params at construction
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@591 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-10-28 19:20:34 +00:00
jens 43b475eac1 - read/write of Stack project
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@589 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-10-28 18:55:12 +00:00
jens 9bfee1ae16 - load and save of weights
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@588 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-10-28 17:26:59 +00:00
jens 91cc83d9ba - crate and train Stack
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@586 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-10-26 09:49:12 +00:00
jens f50607ef74 - add more log info
- create layers dynamically in main

git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@583 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-10-26 06:16:18 +00:00
jens d16f0de8fa - rename Layer into RbmLayer
- add some log info on toJson()

git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@582 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-10-26 06:07:13 +00:00
jens eed6956971 [RBM]
- Layer is an Rbm

git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@581 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-10-26 05:59:20 +00:00
jens 7aa3f0a747 - added Stack::save()
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@579 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-10-25 17:30:31 +00:00
jens 5c01e7d4ce - cleaned up
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@578 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-10-25 16:42:54 +00:00
jens c68faa894e - moved all functions to Layer
- added Stack

git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@577 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-10-25 16:41:39 +00:00
jens 0760d08516 [Rbm]
- added JSON
- refactored


git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@574 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-10-25 16:01:55 +00:00
jens 836f933530 - added JSON for project support
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@573 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-10-24 20:07:03 +00:00
jens 8f7e17e03c - use std::string for filenames
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@572 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-10-24 19:10:44 +00:00
jens 0e544c1afc - changed parameter order of train()
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@571 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-10-24 18:54:40 +00:00
jens f7acfc5bd0 - RBM fixed progress indication
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@569 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-10-24 18:34:41 +00:00
jens 5b4aed047f - improved RBM
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@567 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-10-24 18:22:30 +00:00