- added passes to layer

- removed redundancy


git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@784 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2022-01-11 16:46:01 +00:00
parent d18b45ef50
commit eacefc1e80
3 changed files with 55 additions and 9 deletions
+47 -2
View File
@@ -76,9 +76,54 @@ public:
return m_numVisibleY;
}
int numHidden()
arma::mat gibbsPass(arma::mat &vr)
{
return whv().n_cols;
arma::mat h;
for (int i=0; i < params().numGibbs; i++)
{
h = prob(v_to_h(vr));
vr = prob(h_to_v(h));
}
return h;
}
arma::mat upPass(arma::mat const &v)
{
arma::mat r = v;
arma::mat h = gibbsPass(r);
if (next)
{
next->upPass(h);
}
else
{
return h;
}
}
arma::mat downPass(arma::mat const &h)
{
arma::mat v = prob(h_to_v(h));
if (prev)
{
return prev->downPass(v);
}
return v;
}
arma::mat upDownPass(arma::mat const &v)
{
arma::mat r = v;
arma::mat h = gibbsPass(r);
if (next)
{
next->upDownPass(h);
}
else if (prev)
{
prev->downPass(r);
}
return r;
}
bool weightsLoad(std::string const &dir, std::string const &prj);