- weightInit are construction time parameter

git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@593 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2019-10-28 20:04:39 +00:00
parent 43dc764daa
commit 8a37ee6a69
5 changed files with 14 additions and 85 deletions
+3 -72
View File
@@ -18,80 +18,11 @@
"learningRate" : 0.10000000000000001,
"momentum" : 0.5,
"numGibbs" : 1,
"weightDecay" : 0,
"weightInit" : 0.01
}
"weightDecay" : 0
},
"weightInit" : 0.01
},
"weights_file" : "Layer.0.weights.dat"
},
{
"id" : 1,
"name" : "Layer",
"numHidden" : 128,
"numVisibleX" : 256,
"numVisibleY" : 1,
"rbm" : {
"numHidden" : 128,
"numVisible" : 256,
"params" : {
"doRaoBlackwell" : 1,
"doSampleBatch" : 0,
"gibbsDoSampleHidden" : 1,
"gibbsDoSampleVisible" : 0,
"learningRate" : 0.10000000000000001,
"momentum" : 0.5,
"numGibbs" : 1,
"weightDecay" : 0,
"weightInit" : 0.01
}
},
"weights_file" : "Layer.1.weights.dat"
},
{
"id" : 2,
"name" : "Layer",
"numHidden" : 64,
"numVisibleX" : 128,
"numVisibleY" : 1,
"rbm" : {
"numHidden" : 64,
"numVisible" : 128,
"params" : {
"doRaoBlackwell" : 1,
"doSampleBatch" : 0,
"gibbsDoSampleHidden" : 1,
"gibbsDoSampleVisible" : 0,
"learningRate" : 0.10000000000000001,
"momentum" : 0.5,
"numGibbs" : 1,
"weightDecay" : 0,
"weightInit" : 0.01
}
},
"weights_file" : "Layer.2.weights.dat"
},
{
"id" : 3,
"name" : "Layer",
"numHidden" : 32,
"numVisibleX" : 64,
"numVisibleY" : 1,
"rbm" : {
"numHidden" : 32,
"numVisible" : 64,
"params" : {
"doRaoBlackwell" : 1,
"doSampleBatch" : 0,
"gibbsDoSampleHidden" : 1,
"gibbsDoSampleVisible" : 0,
"learningRate" : 0.10000000000000001,
"momentum" : 0.5,
"numGibbs" : 1,
"weightDecay" : 0,
"weightInit" : 0.01
}
},
"weights_file" : "Layer.3.weights.dat"
}
],
"name" : "mnist_2"
+4 -3
View File
@@ -13,13 +13,14 @@
#include "Rbm.hpp"
Rbm::Rbm(size_t numVisible, size_t numHidden)
Rbm::Rbm(size_t numVisible, size_t numHidden, double weightInit)
: m_params()
, m_weightInit(weightInit)
, m_w(numVisible, numHidden)
, m_bv(1, numVisible)
, m_bh(1, numHidden)
{
weightsInit(0.0, m_params.weightInit);
weightsInit(0.0, m_weightInit);
}
Rbm::Rbm(const Rbm& orig)
@@ -52,11 +53,11 @@ Json::Value Rbm::toJson() const
Json::Value rbm;
rbm["numVisible"] = m_bv.n_elem;
rbm["numHidden"] = m_bh.n_elem;
rbm["weightInit"] = m_weightInit;
rbm["params"] = m_params.toJson();
return rbm;
}
void Rbm::train(const arma::mat& batch, size_t miniBatchSize, size_t numEpochs, IListener* pListener)
{
Status status;
+3 -6
View File
@@ -26,9 +26,8 @@ public:
struct Params
{
Params()
: weightInit(0.01)
: learningRate(0.1)
, weightDecay(0.0)
, learningRate(0.1)
, momentum(0.5)
, doRaoBlackwell(true)
, gibbsDoSampleVisible(false)
@@ -42,7 +41,6 @@ public:
{
std::cout << "Exporting Rbm::Params" << std::endl;
Json::Value params;
params["weightInit"] = weightInit;
params["weightDecay"] = weightDecay;
params["learningRate"] = learningRate;
params["momentum"] = momentum;
@@ -57,7 +55,6 @@ public:
void fromJson(Json::Value params)
{
weightInit = params["weightInit"].asDouble();
weightDecay = params["weightDecay"].asDouble();
learningRate = params["learningRate"].asDouble();
momentum = params["momentum"].asDouble();
@@ -68,7 +65,6 @@ public:
numGibbs = params["numGibbs"].asUInt();
}
double weightInit;
double weightDecay;
double learningRate;
double momentum;
@@ -112,7 +108,7 @@ public:
}
};
Rbm(size_t numVisible, size_t numHidden);
Rbm(size_t numVisible, size_t numHidden, double weightInit=0.01);
Rbm(const Rbm& orig);
virtual ~Rbm();
@@ -132,6 +128,7 @@ public:
private:
const Params m_params;
double m_weightInit;
arma::mat sample(arma::mat const &src);
static arma::mat probsLogistic(arma::mat const &src);
void uniform(arma::mat &srcDst, double mu=0.0, double stdDev=1.0);
+1 -1
View File
@@ -149,7 +149,7 @@ bool RbmLayer::saveWeights(const string &prjname)
Json::Value RbmLayer::toJson() const
{
std::cout << "Exporting RbmLayer " << to_string((int)m_id) << std::endl;
std::cout << "Exporting Layer " << to_string((int)m_id) << std::endl;
Json::Value layer;
layer["name"] = m_name;
layer["id"] = (int)m_id;
+3 -3
View File
@@ -18,9 +18,9 @@
"learningRate" : 0.10000000000000001,
"momentum" : 0.5,
"numGibbs" : 1,
"weightDecay" : 0,
"weightInit" : 0.01
}
"weightDecay" : 0
},
"weightInit" : 0.01
},
"weights_file" : "Layer.0.weights.dat"
}