52 Commits
Author SHA1 Message Date
jensandClaude Sonnet 5 da830e947f Fix GUI crash when loading a project via the Load dialog
StackCreator::fromFile/AStack::loadWeights now append "/prj/<name>"
themselves (the prj/<name>/ restructure), expecting dir to be the repo
root -- which poet.cpp and the GUI's startup auto-load already pass.
But the Load button's file chooser used the picked file's own parent
folder (e.g. prj/prims/) as dir, so after the refactor it looked for
prj/prims/prj/prims/prims.prj, threw an uncaught Json::RuntimeError, and
took the whole process down.

Reproduced by actually launching the GUI, clicking Load, and picking
prj/prims/prims.prj -- confirmed the crash, then confirmed the fix with
the identical click sequence (project loads, weight visualizations
render correctly).

Fix: recover the repo root by going up three levels from the picked
file (file -> its project folder -> "prj" folder -> root) and store it
in m_dir, instead of using the file's immediate parent. This also fixes
a separate dormant bug: m_dir was never updated after loading a
different project through this dialog, so Save/Save Training would have
silently written to whatever m_dir happened to be (always "."),
regardless of which project was actually loaded.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016K8Gu7Qejd11JbdiHZqYAs
2026-07-27 16:07:47 +02:00
jensandClaude Sonnet 5 797339a02f Rename GUI labels to L1 Lambda / L2 Lambda, wire up L1 control
Visible captions "Lambda" and "Weight decay" renamed to "L1 Lambda" and
"L2 Lambda" in both the main params panel (MainComponent.cpp) and the
per-layer view (RbmComponent.cpp), matching the backend Rbm::Params
field names (l1Lambda, l2Lambda).

lambdaLabel's change handler was a dead stub (tooltip said "Unused",
body did nothing) -- wired it up to write params().l1Lambda, mirroring
weightDecayLabel's existing l2Lambda handler. Also added the matching
lambdaLabel->setText(...) sync in updateControls(), which weightDecay
already had but lambdaLabel never did, so the field now actually
displays the loaded value instead of always showing its default.

Verified by launching the GUI and screenshotting it: both labels render
correctly, values populate, no layout/truncation issues.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016K8Gu7Qejd11JbdiHZqYAs
2026-07-27 15:50:07 +02:00
jensandClaude Sonnet 5 0149cdf7ce Rename weightDecay to l2Lambda
Rbm::Params::weightDecay is now applied directly to the weights outside
the momentum recursion (previous commit), exactly like the newly-added
l1Lambda and matching pyRBM's l2_lambda -- same lambda*W gradient form,
same decoupled-from-momentum treatment. The two are functionally the
same mechanism in this codebase, so name it accordingly. Renamed the
Params field, its JSON key, and the two GUI references in
MainComponent.cpp that read/write it (the "weightDecayLabel" widget
identifier and its JUCE-generated marker comment are left as-is --
cosmetic, not part of the actual API).

Existing .prj files still have a "weightDecay" JSON key; fromJson()
no longer reads it, so it's silently ignored on load. Harmless today
since every current project has it set to 0.0 (confirmed: unchanged
poet.elf output, unchanged test-suite results). Not migrating the .prj
files themselves in this change.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016K8Gu7Qejd11JbdiHZqYAs
2026-07-27 15:41:01 +02:00
jens b467180535 Initialize buttons rbmUseVisibleGaussianToggleButton and rbmUseHiddenGaussianToggleButton 2024-01-24 17:02:46 +01:00
jens fe9b1951ea - Added gaussian hidden units 2024-01-24 14:47:21 +01:00
jens 938368f1fa - refactored
- constify
2024-01-22 12:26:03 +01:00
jens d296ca5a1d - fixed crash 2024-01-21 20:44:56 +01:00
jens 3e819d32a8 - fixed crashes 2024-01-21 14:10:37 +01:00
jens ce48f6f6c2 - fixed toggle button
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@850 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-20 18:13:42 +00:00
jens 183ed3b89d - show sample hidden button
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@847 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-19 20:30:59 +00:00
jens 963ee3cd9d - bring back calcContextBatch
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@840 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-19 11:01:37 +00:00
jens 17770f402c - integrated RnnStack
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@826 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-18 08:36:10 +00:00
jens 51e6eef12e - refactored
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@824 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-17 20:22:10 +00:00
jens e55f8e2153 - added StackCreator
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@823 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-17 18:40:50 +00:00
jens bd88074994 - refactored
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@818 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-17 15:03:50 +00:00
jens a372f1a30d - moved method of layer interaction from Layer to Stack
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@817 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-17 08:33:30 +00: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 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 c901187603 - fixed ambigious overload
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@785 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-11 18:29:57 +00:00
jens bfbd837ed5 - refactored
- compile clean

git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@776 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-10 15:28:00 +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 952cf26930 - fixed crash for non-context projects
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@774 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-10 12:33:04 +00:00
jens 8c8e0b324d - assign training data with context
- calculate context on demand if empty

git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@773 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-10 12:19:48 +00:00
jens 648d8a002e - added setBatch()
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@771 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-10 10:36:55 +00:00
jens 5427287838 - fixed gui wiring
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@764 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-09 12:36:45 +00:00
jens c2ffecd66a - pass numContext
- fixed crash when numContext == 0

git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@761 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-09 08:01:25 +00:00
jens ec2b11f7e3 - improved status report
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@749 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-07 13:08:48 +00:00
jens 7f3535954b - prepared for context units
- simplified status report

git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@745 b431acfa-c32f-4a4a-93f1-934dc6c82436
2022-01-07 08:49:12 +00:00
jens fac88d488a - added Stack::setName()
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@668 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-13 20:18:16 +00:00
jens 34597ac600 - Turn Train button to Stop button during training
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@667 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-13 19:12:05 +00:00
jens 690b992e3d - added tool tips
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@666 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-13 19:08:22 +00:00
jens fecf93a012 - added clear button for clearing the stack
- create: use numHidden from prev. layer for numVisible of layer to be created
- fixed enable/disable of layers

git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@665 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-13 18:53:04 +00:00
jens 24f253e892 - fixed crash, when try to train without training patterns
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@664 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-12 23:00:55 +00:00
jens c7ff22d940 - fixed crash on load
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@663 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-12 22:44:15 +00:00
jens ac24503786 - use File open dialog for project
- redraw current Training pattern and weights on project load

git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@662 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-12 22:34:41 +00:00
jens f6ae6d5e16 - handle full path names
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@661 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-12 22:17:26 +00:00
jens 2d91e67704 - project name is first argument on command line
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@658 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-11 19:17:13 +00:00
jens 7a79b48e5c - update RbmComponents on enable/disable
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@656 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-11 18:03:20 +00:00
jens 1a876bc8e5 - Rbm: scale learningRate and weightDecay by minibtachsize
- after create: new Layer is selected

git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@653 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-11 07:07:23 +00:00
jens d99a28bbd1 - fixed creation and deletion of stack and layers
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@652 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-10 16:36:29 +00:00
jens 5e99b59fd2 - fixed upPass(), downPass and added upDownPass()
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@651 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-10 16:20:50 +00:00
jens 9b1084bda9 - train layer instead of stack
- fixed downPass upPass

git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@645 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-08 18:23:56 +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 215cfd11fa - improved progressIndicator
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@637 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-08 05:57:41 +00:00
jens 3d6a6fbf00 - Stack holds training data
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@636 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-07 19:30:25 +00:00
jens 4c68cd4370 - Rbm::onProgress provides object to itself
- MainComponentz is Rbm::IListener

git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@635 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-07 19:27:15 +00:00
jens f5f49643ab - numGibbs also affects reconstruction
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@630 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-07 17:39:33 +00:00
jens fad666ccfd - fixed load and save
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@628 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-07 17:31:38 +00:00
jens 4eb5fc8b28 - added addTraining pattern
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@626 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-07 17:14:25 +00:00
jens 6ccffc119d - cleaned up
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@625 b431acfa-c32f-4a4a-93f1-934dc6c82436
2019-11-07 16:35:00 +00:00