eb29e33b819e98d3a05a85020643f3dd5d3cfbf1
Matutils::sample() always binary-thresholds (src > uniform(src)), but it was the only sampler in the codebase and was called unconditionally on h_probs/v_probs/miniBatch in several CD Gibbs-loop branches regardless of doGaussianVisible/doGaussianHidden. Binary-thresholding a Gaussian unit's continuous activation is meaningless -- it would corrupt any Gaussian-visible/hidden RBM (image-domain experiments via the GUI or TEST target); doesn't affect poet's plain BB-RBM path since both flags are false there. Add sample_gaussian() (mean + N(0,1) noise) alongside the existing Bernoulli sample() in matutils.hpp, plus Rbm::sampleVisible/sampleHidden helpers that dispatch to the right one per the RBM's configured type. Replace every visible/hidden Gibbs-step sample() call in cd_jens (the active path) and cd_hinton (compiled but currently unused, behind USE_CD_HINTON) with the appropriate dispatch helper, and fix the same issue in Rbm::train's doSampleBatch path. Behavior is unchanged for any RBM with doGaussianVisible/doGaussianHidden both false (confirmed: poet.elf f output identical before/after). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016K8Gu7Qejd11JbdiHZqYAs
Description
No description provided
144 MiB
Languages
C++
92.6%
C
4.2%
Makefile
2.8%
Shell
0.4%