- prepare cd_jens() for linear hidden units

This commit is contained in:
2024-01-31 20:52:18 +01:00
parent 802f11211f
commit 8e44aff7a5
+7 -4
View File
@@ -17,6 +17,8 @@
using namespace Matutils;
#define USE_CD_HINTON 0
Rbm::Rbm(size_t numVisible, size_t numHidden)
: m_params()
, m_whv(numVisible, numHidden)
@@ -140,14 +142,15 @@ void Rbm::gibbs_hv(arma::mat &h_probs, arma::mat &v_probs) const
void Rbm::cd(arma::mat const &v_data, arma::mat &dw, arma::mat &dbh, arma::mat &dbv)
{
if (m_params.doGaussianHidden)
#if USE_CD_HINTON
{
cd_hinton_hid_linear(v_data, dw, dbh, dbv);
cd_hinton(v_data, dw, dbh, dbv);
}
else
#else
{
cd_jens(v_data, dw, dbh, dbv);
}
#endif
}
void Rbm::cd_hinton_hid_linear(arma::mat const &v_data, arma::mat &dw, arma::mat &dbh, arma::mat &dbv)
@@ -241,7 +244,7 @@ void Rbm::cd_hinton(arma::mat const &v_data, arma::mat &dw, arma::mat &dbh, arma
void Rbm::cd_jens(arma::mat const &v_states, arma::mat &dw, arma::mat &dbh, arma::mat &dbv)
{
arma::mat v_probs(v_states);
arma::mat h_states = v_to_h(v_states);
arma::mat h_states = toHiddenProbs(v_states);
arma::mat h_probs;
// Sample hidden