- 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
This commit is contained in:
2019-11-08 18:23:56 +00:00
parent 8d9b16c634
commit 9b1084bda9
4 changed files with 71 additions and 83 deletions
+33 -29
View File
@@ -207,23 +207,43 @@ void RbmComponent::redrawReconstruction()
{
uint32_t i;
downPass(DrawReconstruction->getData(), DrawTraining->getData());
for (i=0; i < params().numGibbs-1; i++)
for (i=0; i < params().numGibbs; i++)
{
downPass(DrawReconstruction->getData(), DrawReconstruction->getData());
downPass(DrawReconstruction->getData());
}
DrawReconstruction->DrawData();
}
void RbmComponent::upPass(const arma::mat& v)
{
DrawReconstruction->getData() = v;
DrawReconstruction->DrawData();
if (next)
{
RbmComponent *pComp = static_cast<RbmComponent*> (next);
pComp->upPass(toHiddenProbs(v));
}
}
void RbmComponent::downPass(const arma::mat& v)
{
DrawReconstruction->getData() = v;
DrawReconstruction->DrawData();
if (prev)
{
RbmComponent *pComp = static_cast<RbmComponent*> (prev);
pComp->downPass(prev->toVisibleProbs(v));
}
}
arma::mat RbmComponent::getConvolutedWeight(arma::mat const &w)
{
if (upper)
{
arma::mat wc = w * upper->getWeights().t(); // * 1.0/sqrt((double)w.cols());
return upper->getConvolutedWeight(wc);
}
else
// if (next)
// {
// arma::mat wc = w * next->w().t(); // * 1.0/sqrt((double)w.cols());
// return static_cast<RbmComponent*>(next)->getConvolutedWeight(wc);
// }
// else
{
return w;
}
@@ -243,28 +263,12 @@ void RbmComponent::redrawWeights(size_t index)
void RbmComponent::setTrainingData(arma::mat const& batch)
{
DrawTraining->getData() = batch;
DrawTraining->getData() = trainingData(batch);
DrawTraining->DrawData();
redrawReconstruction();
upPass(DrawHidden->getData());
}
arma::mat const& RbmComponent::getTopWeights()
{
if (upper)
{
return upper->getTopWeights();
}
else
{
return w();
}
}
arma::mat const& RbmComponent::getWeights()
{
return w();
upPass(DrawTraining->getData());
}
//[/MiscUserCode]