- moved context awareness from Rbm to Layer (final)

git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@770 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2022-01-10 10:03:43 +00:00
parent e9de02ac3d
commit e240eae073
4 changed files with 38 additions and 56 deletions
+3 -18
View File
@@ -114,7 +114,7 @@ public:
}
};
Rbm(size_t numVisible, size_t numHidden, size_t numContext=0);
Rbm(size_t numVisible, size_t numHidden);
Rbm(const Rbm& orig);
virtual ~Rbm();
@@ -149,19 +149,9 @@ public:
arma::mat toVisibleProbs(const arma::mat &hidden) const
{
return arma::reshape(Rbm::prob(h_to_v(hidden)), 1, numVisible() - numContext());
return Rbm::prob(h_to_v(hidden));
}
arma::mat toContextProbs(const arma::mat &hidden) const
{
return Rbm::prob(h_to_v(hidden)).submat(0, numVisible() - numContext(), 0, numVisible() - 1);
}
size_t numContext() const
{
return m_ctx.size();
}
size_t numHidden() const
{
return m_bhv.size();
@@ -172,17 +162,13 @@ public:
return m_bv.size();
}
arma::mat vc_to_v(const arma::mat &vc) const;
arma::mat vc_to_c(const arma::mat &vc) const;
arma::mat to_vc(const arma::mat &v, const arma::mat &c) const;
arma::mat v_to_h(const arma::mat &visible) const;
arma::mat h_to_v(const arma::mat &hidden) const;
private:
Params m_params;
arma::mat sample(arma::mat const &src);
void weightUpdate(arma::mat const &v_states, arma::mat &dwhv, arma::mat &dbhv, arma::mat &dbv);
void contrastiveDivergence(arma::mat const &v_states, arma::mat &dwhv, arma::mat &dbhv, arma::mat &dbv);
void uniform(arma::mat &srcDst, double stdDev=1.0, double mu=0.5);
void gibbs(arma::mat &hv_states, arma::mat &v_states);
@@ -193,7 +179,6 @@ protected:
private:
noise_gen_t m_noise;
arma::mat m_whv;
arma::mat m_ctx;
};