- added rms_error function
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@786 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
+2
-6
@@ -182,9 +182,7 @@ void Rbm::train(IListener* pListener)
|
|||||||
lastProgress = status.progress;
|
lastProgress = status.progress;
|
||||||
|
|
||||||
// Calculate error
|
// Calculate error
|
||||||
arma::mat diffErr = miniBatch - prob(h_to_v(prob(v_to_h(v_states))));
|
status.err = rms_error_accu(miniBatch - prob(h_to_v(prob(v_to_h(v_states)))));
|
||||||
arma::mat diffErr_squared = diffErr % diffErr;
|
|
||||||
status.err = accu(diffErr_squared)/diffErr_squared.n_elem;
|
|
||||||
if (pListener)
|
if (pListener)
|
||||||
{
|
{
|
||||||
if(!pListener->onProgress(this, status))
|
if(!pListener->onProgress(this, status))
|
||||||
@@ -200,9 +198,7 @@ void Rbm::train(IListener* pListener)
|
|||||||
} // number of mini batches
|
} // number of mini batches
|
||||||
|
|
||||||
// Update final status
|
// Update final status
|
||||||
arma::mat diffErr = batch - prob(h_to_v(prob(v_to_h(batch))));
|
status.err_total = rms_error_accu(batch - prob(h_to_v(prob(v_to_h(batch)))));
|
||||||
arma::mat diffErr_squared = diffErr % diffErr;
|
|
||||||
status.err_total = accu(diffErr_squared)/diffErr_squared.n_elem;
|
|
||||||
|
|
||||||
if (pListener)
|
if (pListener)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -170,6 +170,18 @@ public:
|
|||||||
arma::mat v_to_h(const arma::mat &visible) const;
|
arma::mat v_to_h(const arma::mat &visible) const;
|
||||||
arma::mat h_to_v(const arma::mat &hidden) const;
|
arma::mat h_to_v(const arma::mat &hidden) const;
|
||||||
|
|
||||||
|
static double rms_error_accu(arma::mat diffErr)
|
||||||
|
{
|
||||||
|
arma::mat diffErr_squared = diffErr % diffErr;
|
||||||
|
return arma::accu(diffErr_squared)/diffErr_squared.n_elem;
|
||||||
|
}
|
||||||
|
|
||||||
|
static arma::mat rms_error(arma::mat diffErr)
|
||||||
|
{
|
||||||
|
arma::mat diffErr_squared = diffErr % diffErr;
|
||||||
|
return arma::sum(diffErr_squared, 1) * 1.0/diffErr_squared.n_cols;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Params m_params;
|
Params m_params;
|
||||||
arma::mat sample(arma::mat const &src);
|
arma::mat sample(arma::mat const &src);
|
||||||
|
|||||||
Reference in New Issue
Block a user