- train with context
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@762 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
+19
-3
@@ -139,7 +139,8 @@ void Rbm::train(const arma::mat& batch, IListener* pListener)
|
|||||||
arma::mat momentum_bias_v(arma::zeros(1, m_bv.n_cols));
|
arma::mat momentum_bias_v(arma::zeros(1, m_bv.n_cols));
|
||||||
arma::mat momentum_bias_hv(arma::zeros(1, m_bhv.n_cols));
|
arma::mat momentum_bias_hv(arma::zeros(1, m_bhv.n_cols));
|
||||||
arma::mat penalty_weights = arma::zeros(m_whv.n_rows, m_whv.n_cols);
|
arma::mat penalty_weights = arma::zeros(m_whv.n_rows, m_whv.n_cols);
|
||||||
|
arma::mat ctx = arma::zeros(1, numContext());
|
||||||
|
|
||||||
int trainingSizeRemain = batch.n_rows;
|
int trainingSizeRemain = batch.n_rows;
|
||||||
|
|
||||||
bool shouldAbort = false;
|
bool shouldAbort = false;
|
||||||
@@ -158,8 +159,23 @@ void Rbm::train(const arma::mat& batch, IListener* pListener)
|
|||||||
arma::mat v_probs(miniBatchSizeActual, m_bv.n_cols);
|
arma::mat v_probs(miniBatchSizeActual, m_bv.n_cols);
|
||||||
arma::mat hid_states(miniBatchSizeActual, m_bhv.n_cols);
|
arma::mat hid_states(miniBatchSizeActual, m_bhv.n_cols);
|
||||||
#endif
|
#endif
|
||||||
arma::mat c_states(arma::zeros(miniBatchSizeActual, m_ctx.n_cols));
|
arma::mat miniBatch;
|
||||||
arma::mat miniBatch(arma::join_rows(miniBatch_v, c_states));
|
if (numContext() > 0)
|
||||||
|
{
|
||||||
|
arma::mat c_states(arma::zeros(miniBatchSizeActual, numContext()));
|
||||||
|
|
||||||
|
for (int i=1; i < miniBatchSizeActual; i++)
|
||||||
|
{
|
||||||
|
arma::mat h = prob(v_to_h(arma::join_rows(miniBatch_v.row(i-1), ctx)));
|
||||||
|
ctx = h;
|
||||||
|
c_states.row(i) = ctx;
|
||||||
|
}
|
||||||
|
miniBatch = (arma::join_rows(miniBatch_v, c_states));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
miniBatch = miniBatch_v;
|
||||||
|
}
|
||||||
arma::mat v_states(miniBatch);
|
arma::mat v_states(miniBatch);
|
||||||
|
|
||||||
// Create hidden layer base on training data
|
// Create hidden layer base on training data
|
||||||
|
|||||||
Reference in New Issue
Block a user