From fc1f53fdb6ee0c2628b0b937fece178c381924eb Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Wed, 8 Oct 2014 18:45:15 +0000 Subject: [PATCH] - added useProbsForHiddenReconstruction git-svn-id: http://moon:8086/svn/software/trunk/projects/RBM@21 b431acfa-c32f-4a4a-93f1-934dc6c82436 --- Source/MainComponent.cpp | 49 +++++++++++++++++++++++++++------------- Source/MainComponent.h | 2 ++ Source/Rbm.hpp | 22 +++++++++++------- 3 files changed, 49 insertions(+), 24 deletions(-) diff --git a/Source/MainComponent.cpp b/Source/MainComponent.cpp index 1655b40..59d926d 100644 --- a/Source/MainComponent.cpp +++ b/Source/MainComponent.cpp @@ -195,6 +195,10 @@ MainComponent::MainComponent () rbmDoRobbinsMonroToggleButton->setButtonText (TRANS("Robbins-Monro")); rbmDoRobbinsMonroToggleButton->addListener (this); + addAndMakeVisible (rbmReduceVarianceToggleButton = new ToggleButton ("rbmReduceVariance toggle button")); + rbmReduceVarianceToggleButton->setButtonText (TRANS("Reduce Variance")); + rbmReduceVarianceToggleButton->addListener (this); + //[UserPreSize] m_vNumX = 16; @@ -220,6 +224,7 @@ MainComponent::MainComponent () rbmUseExpectationsToggleButton->setToggleState(false, sendNotification); rbmDoRaoBlackwellToggleButton->setToggleState(false, sendNotification); rbmDoRobbinsMonroToggleButton->setToggleState(false, sendNotification); + rbmReduceVarianceToggleButton->setToggleState(false, sendNotification); //[/Constructor] } @@ -253,6 +258,7 @@ MainComponent::~MainComponent() rbmUseExpectationsToggleButton = nullptr; rbmDoRaoBlackwellToggleButton = nullptr; rbmDoRobbinsMonroToggleButton = nullptr; + rbmReduceVarianceToggleButton = nullptr; //[Destructor]. You can add your own custom destruction code here.. @@ -280,14 +286,14 @@ void MainComponent::paint (Graphics& g) void MainComponent::resized() { trainButton->setBounds (120, 312, 72, 24); - addButton->setBounds (24, 176, 72, 24); + addButton->setBounds (24, 160, 72, 24); patterSlider->setBounds (224, 312, 184, 24); reconstructButton->setBounds (24, 312, 72, 24); ShakeButton->setBounds (120, 352, 72, 24); WeightsSlider->setBounds (224, 352, 184, 24); - numEpochslabel->setBounds (24, 272, 72, 24); - learningRateLabel->setBounds (120, 272, 72, 24); - testButton->setBounds (120, 176, 72, 24); + numEpochslabel->setBounds (24, 280, 72, 24); + learningRateLabel->setBounds (120, 280, 72, 24); + testButton->setBounds (120, 160, 72, 24); numVisibleLabel->setBounds (440, 256, 72, 24); numHiddenLabel->setBounds (488, 288, 72, 24); createButton->setBounds (488, 320, 72, 24); @@ -301,9 +307,10 @@ void MainComponent::resized() removeTrainingButton->setBounds (440, 88, 72, 24); numGibbsSlider->setBounds (224, 272, 184, 24); reconstructEquButton->setBounds (24, 352, 72, 24); - rbmUseExpectationsToggleButton->setBounds (224, 240, 150, 24); - rbmDoRaoBlackwellToggleButton->setBounds (224, 176, 150, 24); - rbmDoRobbinsMonroToggleButton->setBounds (224, 208, 150, 24); + rbmUseExpectationsToggleButton->setBounds (24, 232, 128, 24); + rbmDoRaoBlackwellToggleButton->setBounds (24, 200, 112, 24); + rbmDoRobbinsMonroToggleButton->setBounds (168, 232, 120, 24); + rbmReduceVarianceToggleButton->setBounds (168, 200, 128, 24); //[UserResized] Add your own custom resize handling here.. Draw->setBounds (16, 16, 100, 100); Draw2->setBounds (110+16, 16, 100, 100); @@ -320,7 +327,7 @@ void MainComponent::buttonClicked (Button* buttonThatWasClicked) if (buttonThatWasClicked == trainButton) { //[UserButtonCode_trainButton] -- add your button handler code here.. - m_pRbm->train(m_layers, numEpochslabel->getText().getIntValue(), learningRateLabel->getText().getFloatValue(), m_numGibbs, m_rbmUseExpectations, m_rbmDoRaoBlackwell, m_rbmDoRobbinsMonro); + m_pRbm->train(m_layers, numEpochslabel->getText().getIntValue(), learningRateLabel->getText().getFloatValue(), m_numGibbs, m_rbmUseExpectations, m_rbmDoRaoBlackwell, m_rbmReduceEstimatorVariance, m_rbmDoRobbinsMonro); //[/UserButtonCode_trainButton] } else if (buttonThatWasClicked == addButton) @@ -407,7 +414,7 @@ void MainComponent::buttonClicked (Button* buttonThatWasClicked) const double *pV, *pH; pV = Draw->getData(); - for (i=0; i < 1000; i++) + for (i=0; i < 100; i++) { pH = m_pRbm->toHidden(pV); DrawHidden->setData(pH); @@ -434,6 +441,12 @@ void MainComponent::buttonClicked (Button* buttonThatWasClicked) m_rbmDoRobbinsMonro = buttonThatWasClicked->getToggleState(); //[/UserButtonCode_rbmDoRobbinsMonroToggleButton] } + else if (buttonThatWasClicked == rbmReduceVarianceToggleButton) + { + //[UserButtonCode_rbmReduceVarianceToggleButton] -- add your button handler code here.. + m_rbmReduceEstimatorVariance = buttonThatWasClicked->getToggleState(); + //[/UserButtonCode_rbmReduceVarianceToggleButton] + } //[UserbuttonClicked_Post] //[/UserbuttonClicked_Post] @@ -635,7 +648,7 @@ BEGIN_JUCER_METADATA virtualName="" explicitFocusOrder="0" pos="120 312 72 24" buttonText="Train" connectedEdges="0" needsCallback="1" radioGroupId="0"/>