- refactored

- constify
This commit is contained in:
2024-01-22 12:26:03 +01:00
parent d99cf5ee4c
commit 938368f1fa
14 changed files with 102 additions and 99 deletions
+25 -9
View File
@@ -26,6 +26,7 @@ AStack::AStack(StackType type, const std::string &name)
: m_name(name) : m_name(name)
, m_type(type) , m_type(type)
, m_pLayers(nullptr) , m_pLayers(nullptr)
, m_numLayers(0)
{ {
} }
@@ -50,16 +51,9 @@ void AStack::setName(const std::string& name)
m_name = name; m_name = name;
} }
size_t AStack::numLayers() size_t AStack::numLayers() const
{ {
size_t count = 0; return m_numLayers;
Layer *pLayer = m_pLayers;
while(pLayer)
{
count++;
pLayer = pLayer->next;
}
return count;
} }
void AStack::addLayer(Layer *pOtherLayer) void AStack::addLayer(Layer *pOtherLayer)
@@ -79,6 +73,7 @@ void AStack::addLayer(Layer *pOtherLayer)
pLayer->next = pOtherLayer; pLayer->next = pOtherLayer;
pOtherLayer->prev = pLayer; pOtherLayer->prev = pLayer;
} }
updateNumLayers();
} }
void AStack::delLayer(Layer* pLayer) void AStack::delLayer(Layer* pLayer)
@@ -86,6 +81,17 @@ void AStack::delLayer(Layer* pLayer)
assert(!"Stack::delLayer: Not implemented!"); assert(!"Stack::delLayer: Not implemented!");
} }
void AStack::updateNumLayers()
{
m_numLayers = 0;
Layer *pLayer = m_pLayers;
while(pLayer)
{
m_numLayers++;
pLayer = pLayer->next;
}
}
Layer* AStack::getLayer(size_t layerId) const Layer* AStack::getLayer(size_t layerId) const
{ {
Layer *pLayer = m_pLayers; Layer *pLayer = m_pLayers;
@@ -101,6 +107,16 @@ Layer* AStack::getLayer(size_t layerId) const
} }
Layer* AStack::getFirstLayer() const
{
return getLayer(0);
}
Layer* AStack::getLastLayer() const
{
return getLayer(numLayers()-1);
}
bool AStack::save(const std::string &dir) bool AStack::save(const std::string &dir)
{ {
return StackCreator::toFile(this, dir, m_name); return StackCreator::toFile(this, dir, m_name);
+5 -1
View File
@@ -53,7 +53,7 @@ public:
StackType type(); StackType type();
void setName(const std::string &name); void setName(const std::string &name);
size_t numLayers(); size_t numLayers() const;
virtual size_t numContext() virtual size_t numContext()
{ {
return 0; return 0;
@@ -62,6 +62,8 @@ public:
void delLayer(Layer *pLayer); void delLayer(Layer *pLayer);
Layer* getLayer(size_t layerId) const; Layer* getLayer(size_t layerId) const;
Layer* getFirstLayer() const;
Layer* getLastLayer() const;
bool save(const std::string &dir); bool save(const std::string &dir);
@@ -85,6 +87,8 @@ protected:
private: private:
arma::mat m_trainingBatch; arma::mat m_trainingBatch;
size_t m_numLayers;
void updateNumLayers();
}; };
+18 -37
View File
@@ -24,18 +24,18 @@ DeepStack::~DeepStack()
{ {
} }
arma::mat DeepStack::trainingBatchFrom(size_t layerId, const arma::mat& batch) arma::mat DeepStack::trainingBatchFrom(Layer *pLayer, const arma::mat& batch)
{ {
arma::mat thisBatch = batch; arma::mat thisBatch = batch;
Layer *pLayer = getLayer(0); Layer *pLayerForward = getFirstLayer();
while (pLayer) while (pLayerForward)
{ {
if (pLayer->id() == layerId) if (pLayerForward == pLayer)
{ {
break; break;
} }
thisBatch = pLayer->toHiddenProbs(thisBatch); thisBatch = pLayerForward->toHiddenProbs(thisBatch);
pLayer = pLayer->next; pLayerForward = pLayerForward->next;
} }
return thisBatch; return thisBatch;
} }
@@ -43,48 +43,21 @@ arma::mat DeepStack::trainingBatchFrom(size_t layerId, const arma::mat& batch)
void DeepStack::train(const arma::mat& batch, Rbm::IListener* pListener) void DeepStack::train(const arma::mat& batch, Rbm::IListener* pListener)
{ {
arma::mat thisBatch = batch; arma::mat thisBatch = batch;
Layer *pLayer = getLayer(0); Layer *pLayer = getFirstLayer();
while (pLayer) while (pLayer)
{ {
thisBatch = trainingBatchFrom(pLayer->id(), thisBatch); thisBatch = trainingBatchFrom(pLayer, thisBatch);
pLayer->train(thisBatch, pListener); pLayer->train(thisBatch, pListener);
pLayer = pLayer->next; pLayer = pLayer->next;
} }
} }
void DeepStack::train(size_t layerId, const arma::mat& batch, Rbm::IListener* pListener) void DeepStack::train(Layer *pLayer, const arma::mat& batch, Rbm::IListener* pListener)
{ {
arma::mat thisBatch = batch; arma::mat thisBatch = trainingBatchFrom(pLayer, batch);
Layer *pLayer = getLayer(0);
while (pLayer)
{
if (pLayer->id() == layerId)
{
break;
}
thisBatch = pLayer->toHiddenProbs(thisBatch);
pLayer = pLayer->next;
}
pLayer->train(thisBatch, pListener); pLayer->train(thisBatch, pListener);
} }
arma::mat DeepStack::upPass(size_t layerId, const arma::mat& v)
{
return upPass(getLayer(layerId), v);
}
arma::mat DeepStack::downPass(size_t layerId, const arma::mat& h)
{
return downPass(getLayer(layerId), h);
}
arma::mat DeepStack::upDownPass(size_t layerId, const arma::mat& v)
{
arma::mat h = upPass(layerId, v);
arma::mat r = downPass(numLayers()-1, h);
return r;
}
arma::mat DeepStack::upPass(Layer *pLayer, arma::mat const &v) arma::mat DeepStack::upPass(Layer *pLayer, arma::mat const &v)
{ {
arma::mat h = v; arma::mat h = v;
@@ -112,3 +85,11 @@ arma::mat DeepStack::downPass(Layer *pLayer, arma::mat const &h)
} }
return v; return v;
} }
arma::mat DeepStack::upDownPass(Layer *pLayer, const arma::mat& v)
{
arma::mat h = upPass(pLayer, v);
arma::mat r = downPass(getLastLayer(), h);
return r;
}
+4 -7
View File
@@ -29,16 +29,13 @@ public:
virtual ~DeepStack(); virtual ~DeepStack();
void train(const arma::mat& batch, Rbm::IListener* pListener) override; void train(const arma::mat& batch, Rbm::IListener* pListener) override;
arma::mat trainingBatchFrom(size_t layerId, const arma::mat& batch); void train(Layer *pLayer, const arma::mat& batch, Rbm::IListener* pListener);
void train(size_t layerId, const arma::mat& batch, Rbm::IListener* pListener);
arma::mat trainingBatchFrom(Layer *pLayer, const arma::mat& batch);
arma::mat upPass(size_t layerId, arma::mat const &v);
arma::mat downPass(size_t layerId, arma::mat const &h);
arma::mat upDownPass(size_t layerId, arma::mat const &v);
arma::mat upPass(Layer *pLayer, arma::mat const &v); arma::mat upPass(Layer *pLayer, arma::mat const &v);
arma::mat upDownPass(Layer *pLayer, const arma::mat& v);
arma::mat downPass(Layer *pLayer, arma::mat const &h); arma::mat downPass(Layer *pLayer, arma::mat const &h);
}; };
+2 -2
View File
@@ -89,7 +89,7 @@ Layer* Layer::root()
return pLayer; return pLayer;
} }
arma::mat Layer::to_h_gibbs(const arma::mat& v_probs) arma::mat Layer::to_h_gibbs(const arma::mat& v_probs) const
{ {
onUpPass(v_probs); onUpPass(v_probs);
@@ -99,7 +99,7 @@ arma::mat Layer::to_h_gibbs(const arma::mat& v_probs)
return h; return h;
} }
arma::mat Layer::to_v_gibbs(const arma::mat& h_probs) arma::mat Layer::to_v_gibbs(const arma::mat& h_probs) const
{ {
onDownPass(h_probs); onDownPass(h_probs);
+4 -4
View File
@@ -51,8 +51,8 @@ public:
void calcContextBatch(arma::mat &batch); void calcContextBatch(arma::mat &batch);
void train(arma::mat const &batch, IListener *pListener=nullptr); void train(arma::mat const &batch, IListener *pListener=nullptr);
arma::mat to_h_gibbs(const arma::mat& v_probs); arma::mat to_h_gibbs(const arma::mat& v_probs) const;
arma::mat to_v_gibbs(const arma::mat& h_probs); arma::mat to_v_gibbs(const arma::mat& h_probs) const;
private: private:
@@ -67,8 +67,8 @@ protected:
size_t m_numVisibleY; size_t m_numVisibleY;
size_t m_numContext; size_t m_numContext;
virtual void onUpPass(const arma::mat& v) {} virtual void onUpPass(const arma::mat& v)const {}
virtual void onDownPass(const arma::mat& h) {} virtual void onDownPass(const arma::mat& h) const {}
}; };
+10 -5
View File
@@ -685,8 +685,13 @@ void MainComponent::sliderValueChanged (Slider* sliderThatWasMoved)
if (sliderThatWasMoved == patterSlider) if (sliderThatWasMoved == patterSlider)
{ {
//[UserSliderCode_patterSlider] -- add your slider handling code here.. //[UserSliderCode_patterSlider] -- add your slider handling code here..
m_trainingIndex = (int)sliderThatWasMoved->getValue();
m_stack->upDownPass(m_pLayer->id(), m_stack->trainingBatchFrom(m_pLayer->id(), trainingAt(m_trainingIndex))); size_t trainingIndex = (size_t)sliderThatWasMoved->getValue();
if (trainingIndex < m_stack->numTraining())
{
m_trainingIndex = trainingIndex;
m_stack->upDownPass(m_pLayer, m_stack->trainingBatchFrom(m_pLayer, trainingAt(m_trainingIndex)));
}
//[/UserSliderCode_patterSlider] //[/UserSliderCode_patterSlider]
} }
else if (sliderThatWasMoved == WeightsSlider) else if (sliderThatWasMoved == WeightsSlider)
@@ -822,7 +827,7 @@ void MainComponent::comboBoxChanged (ComboBox* comboBoxThatHasChanged)
m_pLayer->redrawWeights(m_weightIndex); m_pLayer->redrawWeights(m_weightIndex);
if (m_stack->trainingBatch().n_rows > 0) if (m_stack->trainingBatch().n_rows > 0)
{ {
m_stack->upDownPass(index, m_stack->trainingBatchFrom(index, trainingAt(m_trainingIndex))); m_stack->upDownPass(m_pLayer, m_stack->trainingBatchFrom(m_pLayer, trainingAt(m_trainingIndex)));
} }
//[/UserComboBoxCode_m_rbmSelect] //[/UserComboBoxCode_m_rbmSelect]
} }
@@ -906,7 +911,7 @@ void MainComponent::run()
{ {
trainButton->setButtonText (TRANS("Stop")); trainButton->setButtonText (TRANS("Stop"));
m_pLayer->calcContextBatch(m_stack->trainingBatch()); m_pLayer->calcContextBatch(m_stack->trainingBatch());
m_stack->train(m_pLayer->id(), m_stack->trainingBatch(), this); m_stack->train(m_pLayer, m_stack->trainingBatch(), this);
trainButton->setButtonText (TRANS("Train")); trainButton->setButtonText (TRANS("Train"));
} }
@@ -922,7 +927,7 @@ bool MainComponent::onProgress(Rbm *pRbm, const Rbm::Status &status)
} }
RbmComponent *pComp = static_cast<RbmComponent*>(pRbm); RbmComponent *pComp = static_cast<RbmComponent*>(pRbm);
m_stack->upPass(pComp->id(), pComp->getTraining()); m_stack->upPass(pComp, pComp->getTraining());
// pComp->upPass(pComp->getTraining()); // pComp->upPass(pComp->getTraining());
pComp->redrawReconstruction(); pComp->redrawReconstruction();
pComp->redrawWeights(); pComp->redrawWeights();
+2 -2
View File
@@ -86,8 +86,8 @@ private:
static const size_t DBN_SIZE = 4; static const size_t DBN_SIZE = 4;
ScopedPointer<DeepStack> m_stack; ScopedPointer<DeepStack> m_stack;
RbmComponent *m_pLayer; RbmComponent *m_pLayer;
int m_weightIndex; size_t m_weightIndex;
int m_trainingIndex; size_t m_trainingIndex;
void save(); void save();
const juce::String& getBaseDir(); const juce::String& getBaseDir();
void run(); void run();
+2 -2
View File
@@ -104,7 +104,7 @@ Json::Value Rbm::toJson() const
return rbm; return rbm;
} }
void Rbm::gibbs_vh(arma::mat &v_probs, arma::mat &h_probs) void Rbm::gibbs_vh(arma::mat &v_probs, arma::mat &h_probs) const
{ {
for (int i=0; i < m_params.numGibbs; i++) for (int i=0; i < m_params.numGibbs; i++)
{ {
@@ -116,7 +116,7 @@ void Rbm::gibbs_vh(arma::mat &v_probs, arma::mat &h_probs)
} }
} }
void Rbm::gibbs_hv(arma::mat &h_probs, arma::mat &v_probs) void Rbm::gibbs_hv(arma::mat &h_probs, arma::mat &v_probs) const
{ {
for (int i=0; i < m_params.numGibbs; i++) for (int i=0; i < m_params.numGibbs; i++)
{ {
+2 -2
View File
@@ -141,8 +141,8 @@ public:
arma::mat h_to_v(const arma::mat &hidden) const; arma::mat h_to_v(const arma::mat &hidden) const;
static arma::mat prob(arma::mat const &src); static arma::mat prob(arma::mat const &src);
void gibbs_hv(arma::mat &h_probs, arma::mat &v_probs); void gibbs_hv(arma::mat &h_probs, arma::mat &v_probs) const;
void gibbs_vh(arma::mat &v_probs, arma::mat &h_probs); void gibbs_vh(arma::mat &v_probs, arma::mat &h_probs) const;
static double rms_error_accu(arma::mat diffErr); static double rms_error_accu(arma::mat diffErr);
static arma::mat rms_error(arma::mat diffErr); static arma::mat rms_error(arma::mat diffErr);
+10 -10
View File
@@ -224,15 +224,15 @@ void RbmComponent::onDraw(DrawComponent &obj)
{ {
if (&obj == DrawHidden) if (&obj == DrawHidden)
{ {
m_stack.downPass(id(), obj.getData()); m_stack.downPass(this, obj.getData());
} }
if (&obj == DrawVisibleTrain) if (&obj == DrawVisibleTrain)
{ {
m_stack.upDownPass(id(), getTraining()); m_stack.upDownPass(this, getTraining());
} }
if (&obj == DrawContextTrain) if (&obj == DrawContextTrain)
{ {
m_stack.upDownPass(id(), getTraining()); m_stack.upDownPass(this, getTraining());
} }
} }
@@ -266,7 +266,7 @@ void RbmComponent::buttonClicked(Button* buttonThatWasClicked)
if (m_numContext) if (m_numContext)
{ {
DrawContextTrain->getData() = DrawHidden->getData(); DrawContextTrain->getData() = DrawHidden->getData();
m_stack.upDownPass(id(), getTraining()); m_stack.upDownPass(this, getTraining());
} }
} }
} }
@@ -274,7 +274,7 @@ void RbmComponent::buttonClicked(Button* buttonThatWasClicked)
void RbmComponent::redrawReconstruction() void RbmComponent::redrawReconstruction()
{ {
RbmComponent *pComp = static_cast<RbmComponent*> (root()); RbmComponent *pComp = static_cast<RbmComponent*> (root());
m_stack.upDownPass(pComp->id(), pComp->getTraining()); m_stack.upDownPass(pComp, pComp->getTraining());
} }
arma::mat RbmComponent::getTraining() const arma::mat RbmComponent::getTraining() const
@@ -287,7 +287,7 @@ arma::mat RbmComponent::getReconst() const
return arma::join_rows(DrawVisibleReconst->getData(), DrawContextReconst->getData()); return arma::join_rows(DrawVisibleReconst->getData(), DrawContextReconst->getData());
} }
void RbmComponent::trainRedraw(const arma::mat& vc) void RbmComponent::trainRedraw(const arma::mat& vc) const
{ {
DrawVisibleTrain->getData() = vc_to_v(vc); DrawVisibleTrain->getData() = vc_to_v(vc);
DrawContextTrain->getData() = vc_to_c(vc); DrawContextTrain->getData() = vc_to_c(vc);
@@ -295,7 +295,7 @@ void RbmComponent::trainRedraw(const arma::mat& vc)
DrawContextTrain->DrawData(); DrawContextTrain->DrawData();
} }
void RbmComponent::reconstRedraw(const arma::mat& vc) void RbmComponent::reconstRedraw(const arma::mat& vc) const
{ {
DrawVisibleReconst->getData() = vc_to_v(vc); DrawVisibleReconst->getData() = vc_to_v(vc);
DrawContextReconst->getData() = vc_to_c(vc); DrawContextReconst->getData() = vc_to_c(vc);
@@ -303,7 +303,7 @@ void RbmComponent::reconstRedraw(const arma::mat& vc)
DrawContextReconst->DrawData(); DrawContextReconst->DrawData();
} }
void RbmComponent::onUpPass(const arma::mat& v) void RbmComponent::onUpPass(const arma::mat& v) const
{ {
DrawVisibleTrain->getData() = vc_to_v(v); DrawVisibleTrain->getData() = vc_to_v(v);
DrawVisibleTrain->DrawData(); DrawVisibleTrain->DrawData();
@@ -312,7 +312,7 @@ void RbmComponent::onUpPass(const arma::mat& v)
trainRedraw(v); trainRedraw(v);
} }
void RbmComponent::onDownPass(const arma::mat& h) void RbmComponent::onDownPass(const arma::mat& h) const
{ {
DrawHidden->getData() = h; DrawHidden->getData() = h;
DrawHidden->DrawData(); DrawHidden->DrawData();
@@ -349,7 +349,7 @@ void RbmComponent::redrawWeights(size_t index)
void RbmComponent::setTrainingData(arma::mat const& batch) void RbmComponent::setTrainingData(arma::mat const& batch)
{ {
RbmComponent *pComp = static_cast<RbmComponent*> (root()); RbmComponent *pComp = static_cast<RbmComponent*> (root());
m_stack.upDownPass(id(), batch); m_stack.upDownPass(this, batch);
} }
//[/MiscUserCode] //[/MiscUserCode]
+4 -4
View File
@@ -73,8 +73,8 @@ public:
ScopedPointer<DrawComponent> DrawContextTrain; ScopedPointer<DrawComponent> DrawContextTrain;
arma::mat getTraining() const; arma::mat getTraining() const;
arma::mat getReconst() const; arma::mat getReconst() const;
void trainRedraw(const arma::mat& vc); void trainRedraw(const arma::mat& vc) const;
void reconstRedraw(const arma::mat& vc); void reconstRedraw(const arma::mat& vc) const;
private: private:
//[UserVariables] -- You can add your own custom variables in this section. //[UserVariables] -- You can add your own custom variables in this section.
@@ -84,8 +84,8 @@ private:
ScopedPointer<ToggleButton> m_toggleEnable; ScopedPointer<ToggleButton> m_toggleEnable;
ScopedPointer<TextButton> m_buttonCopyH2C; ScopedPointer<TextButton> m_buttonCopyH2C;
void onUpPass(const arma::mat& v) override; void onUpPass(const arma::mat& v) const override;
void onDownPass(const arma::mat& h) override; void onDownPass(const arma::mat& h) const override;
DeepStack &m_stack; DeepStack &m_stack;
size_t m_currWeightIndexToDraw; size_t m_currWeightIndexToDraw;
+10 -10
View File
@@ -212,15 +212,15 @@ void RnnComponentLayer::onDraw(DrawComponent &obj)
{ {
if (&obj == DrawHidden) if (&obj == DrawHidden)
{ {
m_stack.downPass(id(), obj.getData()); m_stack.downPass(this, obj.getData());
} }
if (&obj == DrawVisibleTrain) if (&obj == DrawVisibleTrain)
{ {
m_stack.upDownPass(id(), getTraining()); m_stack.upDownPass(this, getTraining());
} }
if (&obj == DrawContextTrain) if (&obj == DrawContextTrain)
{ {
m_stack.upDownPass(id(), getTraining()); m_stack.upDownPass(this, getTraining());
} }
} }
@@ -252,14 +252,14 @@ void RnnComponentLayer::buttonClicked(Button* buttonThatWasClicked)
else if (buttonThatWasClicked == m_buttonCopyH2C) else if (buttonThatWasClicked == m_buttonCopyH2C)
{ {
DrawContextTrain->getData() = DrawHidden->getData(); DrawContextTrain->getData() = DrawHidden->getData();
m_stack.upDownPass(id(), getTraining()); m_stack.upDownPass(this, getTraining());
} }
} }
void RnnComponentLayer::redrawReconstruction() void RnnComponentLayer::redrawReconstruction()
{ {
RnnComponentLayer *pComp = static_cast<RnnComponentLayer*> (root()); RnnComponentLayer *pComp = static_cast<RnnComponentLayer*> (root());
m_stack.upDownPass(pComp->id(), pComp->getTraining()); m_stack.upDownPass(pComp, pComp->getTraining());
} }
arma::mat RnnComponentLayer::getTraining() const arma::mat RnnComponentLayer::getTraining() const
@@ -272,7 +272,7 @@ arma::mat RnnComponentLayer::getReconst() const
return arma::join_rows(DrawVisibleReconst->getData(), DrawContextReconst->getData()); return arma::join_rows(DrawVisibleReconst->getData(), DrawContextReconst->getData());
} }
void RnnComponentLayer::trainRedraw(const arma::mat& vc) void RnnComponentLayer::trainRedraw(const arma::mat& vc) const
{ {
DrawVisibleTrain->getData() = vc_to_v(vc); DrawVisibleTrain->getData() = vc_to_v(vc);
DrawContextTrain->getData() = vc_to_c(vc); DrawContextTrain->getData() = vc_to_c(vc);
@@ -280,7 +280,7 @@ void RnnComponentLayer::trainRedraw(const arma::mat& vc)
DrawContextTrain->DrawData(); DrawContextTrain->DrawData();
} }
void RnnComponentLayer::reconstRedraw(const arma::mat& vc) void RnnComponentLayer::reconstRedraw(const arma::mat& vc) const
{ {
DrawVisibleReconst->getData() = vc_to_v(vc); DrawVisibleReconst->getData() = vc_to_v(vc);
DrawContextReconst->getData() = vc_to_c(vc); DrawContextReconst->getData() = vc_to_c(vc);
@@ -288,7 +288,7 @@ void RnnComponentLayer::reconstRedraw(const arma::mat& vc)
DrawContextReconst->DrawData(); DrawContextReconst->DrawData();
} }
void RnnComponentLayer::onUpPass(const arma::mat& v) void RnnComponentLayer::onUpPass(const arma::mat& v) const
{ {
DrawVisibleTrain->getData() = vc_to_v(v); DrawVisibleTrain->getData() = vc_to_v(v);
DrawVisibleTrain->DrawData(); DrawVisibleTrain->DrawData();
@@ -297,7 +297,7 @@ void RnnComponentLayer::onUpPass(const arma::mat& v)
trainRedraw(v); trainRedraw(v);
} }
void RnnComponentLayer::onDownPass(const arma::mat& h) void RnnComponentLayer::onDownPass(const arma::mat& h) const
{ {
DrawHidden->getData() = h; DrawHidden->getData() = h;
DrawHidden->DrawData(); DrawHidden->DrawData();
@@ -334,7 +334,7 @@ void RnnComponentLayer::redrawWeights(size_t index)
void RnnComponentLayer::setTrainingData(arma::mat const& batch) void RnnComponentLayer::setTrainingData(arma::mat const& batch)
{ {
RnnComponentLayer *pComp = static_cast<RnnComponentLayer*> (root()); RnnComponentLayer *pComp = static_cast<RnnComponentLayer*> (root());
m_stack.upDownPass(id(), batch); m_stack.upDownPass(this, batch);
} }
//[/MiscUserCode] //[/MiscUserCode]
+4 -4
View File
@@ -73,8 +73,8 @@ public:
ScopedPointer<DrawComponent> DrawContextTrain; ScopedPointer<DrawComponent> DrawContextTrain;
arma::mat getTraining() const; arma::mat getTraining() const;
arma::mat getReconst() const; arma::mat getReconst() const;
void trainRedraw(const arma::mat& vc); void trainRedraw(const arma::mat& vc) const;
void reconstRedraw(const arma::mat& vc); void reconstRedraw(const arma::mat& vc) const;
private: private:
//[UserVariables] -- You can add your own custom variables in this section. //[UserVariables] -- You can add your own custom variables in this section.
@@ -84,8 +84,8 @@ private:
ScopedPointer<ToggleButton> m_toggleEnable; ScopedPointer<ToggleButton> m_toggleEnable;
ScopedPointer<TextButton> m_buttonCopyH2C; ScopedPointer<TextButton> m_buttonCopyH2C;
void onUpPass(const arma::mat& v) override; void onUpPass(const arma::mat& v) const override;
void onDownPass(const arma::mat& h) override; void onDownPass(const arma::mat& h) const override;
DeepStack &m_stack; DeepStack &m_stack;
size_t m_currWeightIndexToDraw; size_t m_currWeightIndexToDraw;