- fixed upPass(), downPass and added upDownPass()

git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@651 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2019-11-10 16:20:50 +00:00
parent 82ba72228b
commit 5e99b59fd2
3 changed files with 52 additions and 23 deletions
+3 -3
View File
@@ -507,7 +507,7 @@ void MainComponent::buttonClicked (Button* buttonThatWasClicked)
//[UserButtonCode_ShakeButton] -- add your button handler code here.. //[UserButtonCode_ShakeButton] -- add your button handler code here..
m_pLayer->weightsInit(weightInitLabel->getText().getFloatValue()); m_pLayer->weightsInit(weightInitLabel->getText().getFloatValue());
m_pLayer->redrawWeights(); m_pLayer->redrawWeights();
m_pLayer->redrawReconstruction(); m_pLayer->redrawReconstruction(m_stack->trainingData(m_pLayer).row(m_trainingIndex));
//[/UserButtonCode_ShakeButton] //[/UserButtonCode_ShakeButton]
} }
else if (buttonThatWasClicked == createButton) else if (buttonThatWasClicked == createButton)
@@ -642,7 +642,7 @@ void MainComponent::sliderValueChanged (Slider* sliderThatWasMoved)
{ {
//[UserSliderCode_numGibbsSlider] -- add your slider handling code here.. //[UserSliderCode_numGibbsSlider] -- add your slider handling code here..
m_pLayer->params().numGibbs = sliderThatWasMoved->getValue(); m_pLayer->params().numGibbs = sliderThatWasMoved->getValue();
m_pLayer->redrawReconstruction(); m_pLayer->redrawReconstruction(m_stack->trainingData().row(m_trainingIndex));
//[/UserSliderCode_numGibbsSlider] //[/UserSliderCode_numGibbsSlider]
} }
else if (sliderThatWasMoved == m_progressBarSlider) else if (sliderThatWasMoved == m_progressBarSlider)
@@ -842,7 +842,7 @@ bool MainComponent::onProgress(Rbm *pRbm, const Rbm::Status &status)
{ {
RbmComponent *pComp = static_cast<RbmComponent*>(pRbm); RbmComponent *pComp = static_cast<RbmComponent*>(pRbm);
pComp->upPass(pComp->DrawTraining->getData()); pComp->upPass(pComp->DrawTraining->getData());
pComp->redrawReconstruction(); pComp->redrawReconstruction(pComp->DrawTraining->getData());
pComp->redrawWeights(); pComp->redrawWeights();
m_progressBarSlider->setValue(status.progress); m_progressBarSlider->setValue(status.progress);
+46 -17
View File
@@ -41,7 +41,7 @@ RbmComponent::RbmComponent (const std::string &name, size_t id, size_t numVisibl
addAndMakeVisible (DrawHidden = new DrawComponent (numHidden, 1)); addAndMakeVisible (DrawHidden = new DrawComponent (numHidden, 1));
DrawHidden->setListener(this); DrawHidden->setListener(this);
redrawWeights(); redrawWeights();
redrawReconstruction(); // redrawReconstruction();
setSize (430, 130); setSize (430, 130);
resized(); resized();
@@ -195,47 +195,81 @@ void RbmComponent::onDraw(DrawComponent &obj)
{ {
if (&obj == DrawHidden) if (&obj == DrawHidden)
{ {
downPass(toVisibleProbs(obj.getData())); downPass(obj.getData());
} }
if (&obj == DrawTraining) if (&obj == DrawTraining)
{ {
redrawReconstruction(); upDownPass(obj.getData());
} }
} }
void RbmComponent::redrawReconstruction() void RbmComponent::redrawReconstruction(const arma::mat& v)
{ {
uint32_t i; uint32_t i;
for (i=0; i < params().numGibbs; i++) for (i=0; i < params().numGibbs; i++)
{ {
downPass(DrawReconstruction->getData()); DrawHidden->getData() = toHiddenProbs(v);
} DrawHidden->DrawData();
DrawReconstruction->getData() = toVisibleProbs(DrawHidden->getData());
DrawReconstruction->DrawData(); DrawReconstruction->DrawData();
}
} }
void RbmComponent::upPass(const arma::mat& v) void RbmComponent::upPass(const arma::mat& v)
{ {
DrawReconstruction->getData() = v; DrawTraining->getData() = v;
DrawTraining->DrawData();
DrawHidden->getData() = toHiddenProbs(v);
DrawHidden->DrawData();
DrawReconstruction->getData() = toVisibleProbs(DrawHidden->getData());
DrawReconstruction->DrawData(); DrawReconstruction->DrawData();
if (next) if (next)
{ {
RbmComponent *pComp = static_cast<RbmComponent*> (next); RbmComponent *pComp = static_cast<RbmComponent*> (next);
pComp->upPass(toHiddenProbs(v)); pComp->upPass(DrawHidden->getData());
} }
} }
void RbmComponent::downPass(const arma::mat& v) void RbmComponent::downPass(const arma::mat& h)
{ {
DrawReconstruction->getData() = v; DrawHidden->getData() = h;
DrawHidden->DrawData();
DrawReconstruction->getData() = toVisibleProbs(h);
DrawReconstruction->DrawData(); DrawReconstruction->DrawData();
if (prev) if (prev)
{ {
RbmComponent *pComp = static_cast<RbmComponent*> (prev); RbmComponent *pComp = static_cast<RbmComponent*> (prev);
pComp->downPass(prev->toVisibleProbs(v)); pComp->downPass(DrawReconstruction->getData());
} }
} }
void RbmComponent::upDownPass(const arma::mat& v)
{
DrawTraining->getData() = v;
DrawTraining->DrawData();
DrawHidden->getData() = toHiddenProbs(v);
DrawHidden->DrawData();
DrawReconstruction->getData() = toVisibleProbs(DrawHidden->getData());
DrawReconstruction->DrawData();
if (next)
{
RbmComponent *pComp = static_cast<RbmComponent*> (next);
pComp->upDownPass(DrawHidden->getData());
}
else if (prev)
{
if (prev)
{
RbmComponent *pComp = static_cast<RbmComponent*> (prev);
pComp->downPass(DrawReconstruction->getData());
}
}
}
arma::mat RbmComponent::getConvolutedWeight(arma::mat const &w) arma::mat RbmComponent::getConvolutedWeight(arma::mat const &w)
{ {
// if (next) // if (next)
@@ -263,12 +297,7 @@ void RbmComponent::redrawWeights(size_t index)
void RbmComponent::setTrainingData(arma::mat const& batch) void RbmComponent::setTrainingData(arma::mat const& batch)
{ {
upDownPass(trainingData(batch));
DrawTraining->getData() = trainingData(batch);
DrawTraining->DrawData();
upPass(DrawTraining->getData());
redrawReconstruction();
} }
//[/MiscUserCode] //[/MiscUserCode]
+3 -3
View File
@@ -63,11 +63,11 @@ public:
void redrawWeights(); void redrawWeights();
void redrawWeights(size_t index); void redrawWeights(size_t index);
void redrawReconstruction(); void redrawReconstruction(arma::mat const &v);
void downPass(arma::mat const &v);
void upPass(arma::mat const &v); void upPass(arma::mat const &v);
void downPass(arma::mat const &v);
void upDownPass(arma::mat const &v);
arma::mat getConvolutedWeight(arma::mat const &h); arma::mat getConvolutedWeight(arma::mat const &h);
ScopedPointer<DrawComponent> DrawTraining; ScopedPointer<DrawComponent> DrawTraining;
ScopedPointer<DrawComponent> DrawHidden; ScopedPointer<DrawComponent> DrawHidden;