- 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:
2022-01-11 19:13:30 +00:00
parent c901187603
commit 5cb7b16d96
2 changed files with 14 additions and 6 deletions
+2 -6
View File
@@ -182,9 +182,7 @@ void Rbm::train(IListener* pListener)
lastProgress = status.progress;
// Calculate error
arma::mat diffErr = 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;
status.err = rms_error_accu(miniBatch - prob(h_to_v(prob(v_to_h(v_states)))));
if (pListener)
{
if(!pListener->onProgress(this, status))
@@ -200,9 +198,7 @@ void Rbm::train(IListener* pListener)
} // number of mini batches
// Update final status
arma::mat diffErr = 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;
status.err_total = rms_error_accu(batch - prob(h_to_v(prob(v_to_h(batch)))));
if (pListener)
{
+12
View File
@@ -170,6 +170,18 @@ public:
arma::mat v_to_h(const arma::mat &visible) 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:
Params m_params;
arma::mat sample(arma::mat const &src);