Improved status

git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@562 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2019-10-21 22:13:49 +00:00
parent 188a467a73
commit 09963e2b63
3 changed files with 71 additions and 41 deletions
+25 -15
View File
@@ -16,23 +16,11 @@
#include <armadillo>
#include "noise.h"
class IRbmListener
{
public:
virtual ~IRbmListener()
{
}
bool onProgress()
{
return true;
}
};
class Rbm
{
public:
struct Params
{
Params()
@@ -45,7 +33,7 @@ public:
, m_numGibbs(1)
{
}
double m_weightDecay;
double m_learningRate;
double m_momentum;
@@ -55,11 +43,33 @@ public:
size_t m_numGibbs;
};
struct Status
{
size_t epoch;
size_t trainingSizeRemain;
double progress;
double err;
double L1;
double L2;
};
class IListener
{
public:
IListener() {}
virtual ~IListener() {}
virtual bool onProgress(const Status &status)
{
return true;
}
};
Rbm(size_t numHidden, size_t numVisible);
Rbm(const Rbm& orig);
virtual ~Rbm();
void train(arma::mat const &batch, size_t numEpochs, size_t sizeMiniBatch, Params const &params, IRbmListener *pListener);
void train(arma::mat const &batch, size_t numEpochs, size_t sizeMiniBatch, Params const &params, IListener *pListener);
arma::mat sample(arma::mat const &src);
static arma::mat probsLogistic(arma::mat const &src);
arma::mat toHidden(const arma::mat &v);