From 0f1631fe6041b6b51a0083ab4180f1d295b92a86 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Mon, 28 Oct 2019 20:05:58 +0000 Subject: [PATCH] - refactored git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@594 b431acfa-c32f-4a4a-93f1-934dc6c82436 --- Makefile | 2 +- source/{RbmLayer.cpp => Layer.cpp} | 18 +++++++++--------- source/{RbmLayer.hpp => Layer.hpp} | 12 ++++++------ source/Stack.cpp | 20 ++++++++++---------- source/Stack.hpp | 8 ++++---- source/main.cpp | 8 ++++---- 6 files changed, 34 insertions(+), 34 deletions(-) rename source/{RbmLayer.cpp => Layer.cpp} (88%) rename source/{RbmLayer.hpp => Layer.hpp} (79%) diff --git a/Makefile b/Makefile index 4bfbbf5..f6c4b70 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ CONFIG ?= release -SRCS := source/main.cpp source/Rbm.cpp source/RbmLayer.cpp source/Stack.cpp +SRCS := source/main.cpp source/Rbm.cpp source/Layer.cpp source/Stack.cpp LIBS := -larmadillo -ljsoncpp diff --git a/source/RbmLayer.cpp b/source/Layer.cpp similarity index 88% rename from source/RbmLayer.cpp rename to source/Layer.cpp index 33acf05..54a268c 100644 --- a/source/RbmLayer.cpp +++ b/source/Layer.cpp @@ -11,10 +11,10 @@ * Created on 25. Oktober 2019, 08:13 */ -#include "RbmLayer.hpp" +#include "Layer.hpp" using namespace std; -RbmLayer::RbmLayer(const string &name, size_t id, size_t numVisibleX, size_t numVisibleY, size_t numHidden) +Layer::Layer(const string &name, size_t id, size_t numVisibleX, size_t numVisibleY, size_t numHidden) : Rbm(numVisibleX*numVisibleY, numHidden) , upper(nullptr) , lower(nullptr) @@ -27,7 +27,7 @@ RbmLayer::RbmLayer(const string &name, size_t id, size_t numVisibleX, size_t num m_weightsFile = m_name + "." + to_string((int)m_id) + string(".weights.dat"); } -RbmLayer::RbmLayer(const RbmLayer& orig) +Layer::Layer(const Layer& orig) : Rbm(orig.bv().n_elem, orig.bh().n_elem) , upper(nullptr) , lower(nullptr) @@ -39,11 +39,11 @@ RbmLayer::RbmLayer(const RbmLayer& orig) { } -RbmLayer::~RbmLayer() +Layer::~Layer() { } -bool RbmLayer::loadWeights(const string &prjname) +bool Layer::loadWeights(const string &prjname) { int numVisibleX; int numVisibleY; @@ -105,7 +105,7 @@ bool RbmLayer::loadWeights(const string &prjname) return true; } -bool RbmLayer::saveWeights(const string &prjname) +bool Layer::saveWeights(const string &prjname) { string filename = m_weightsFile; if (prjname.size() > 0) @@ -147,7 +147,7 @@ bool RbmLayer::saveWeights(const string &prjname) return true; } -Json::Value RbmLayer::toJson() const +Json::Value Layer::toJson() const { std::cout << "Exporting Layer " << to_string((int)m_id) << std::endl; Json::Value layer; @@ -163,7 +163,7 @@ Json::Value RbmLayer::toJson() const } -arma::mat RbmLayer::up_pass(const arma::mat &hidden) +arma::mat Layer::up_pass(const arma::mat &hidden) { arma::mat reconstruction = toVisibleProbs(hidden); if (upper) @@ -173,7 +173,7 @@ arma::mat RbmLayer::up_pass(const arma::mat &hidden) return toHiddenProbs(reconstruction); } -arma::mat RbmLayer::down_pass(const arma::mat &visible) +arma::mat Layer::down_pass(const arma::mat &visible) { arma::mat hidden = toHiddenProbs(visible); if (lower) diff --git a/source/RbmLayer.hpp b/source/Layer.hpp similarity index 79% rename from source/RbmLayer.hpp rename to source/Layer.hpp index c128f48..0c92f26 100644 --- a/source/RbmLayer.hpp +++ b/source/Layer.hpp @@ -21,15 +21,15 @@ #include "Rbm.hpp" #include "ILayer.hpp" -class RbmLayer : public Rbm +class Layer : public Rbm { public: - RbmLayer *upper; - RbmLayer *lower; + Layer *upper; + Layer *lower; - RbmLayer(const std::string &prjname, size_t id, size_t numVisibleX, size_t numVisibleY, size_t numHidden); - RbmLayer(const RbmLayer& orig); - virtual ~RbmLayer(); + Layer(const std::string &prjname, size_t id, size_t numVisibleX, size_t numVisibleY, size_t numHidden); + Layer(const Layer& orig); + virtual ~Layer(); Json::Value toJson() const; bool loadWeights(const std::string &prjname=""); diff --git a/source/Stack.cpp b/source/Stack.cpp index 6056f45..fc815dd 100644 --- a/source/Stack.cpp +++ b/source/Stack.cpp @@ -31,7 +31,7 @@ Stack::~Stack() { } -void Stack::addLayer(RbmLayer *pOtherLayer) +void Stack::addLayer(Layer *pOtherLayer) { if (!m_pLayers) { @@ -40,7 +40,7 @@ void Stack::addLayer(RbmLayer *pOtherLayer) } else { - RbmLayer *pLayer = m_pLayers; + Layer *pLayer = m_pLayers; while(pLayer->upper) { pLayer = pLayer->upper; @@ -50,9 +50,9 @@ void Stack::addLayer(RbmLayer *pOtherLayer) } } -RbmLayer* Stack::getLayer(size_t layerId) const +Layer* Stack::getLayer(size_t layerId) const { - RbmLayer *pLayer = m_pLayers; + Layer *pLayer = m_pLayers; while(pLayer) { if (pLayer->id() == layerId) @@ -86,7 +86,7 @@ bool Stack::load() int numVisibleY = layer["numVisibleY"].asInt(); int numHidden = layer["numHidden"].asInt(); - addLayer(new RbmLayer(layername, i, numVisibleX, numVisibleY, numHidden)); + addLayer(new Layer(layername, i, numVisibleX, numVisibleY, numHidden)); } return true; @@ -102,7 +102,7 @@ bool Stack::save() project["stack"]["name"] = m_prjname; Json::Value layers(Json::arrayValue); - RbmLayer *pLayer = m_pLayers; + Layer *pLayer = m_pLayers; while(pLayer) { layers.append(pLayer->toJson()); @@ -117,7 +117,7 @@ bool Stack::save() bool Stack::loadWeights() { - RbmLayer *pLayer = m_pLayers; + Layer *pLayer = m_pLayers; while(pLayer) { if (!pLayer->loadWeights(m_prjname)) @@ -131,7 +131,7 @@ bool Stack::loadWeights() bool Stack::saveWeights() { - RbmLayer *pLayer = m_pLayers; + Layer *pLayer = m_pLayers; while(pLayer) { if (!pLayer->saveWeights(m_prjname)) @@ -145,7 +145,7 @@ bool Stack::saveWeights() void Stack::train(const arma::mat& batch, size_t miniBatchSize, size_t numEpochs, Rbm::IListener* pListener) { - RbmLayer *pLayer = m_pLayers; + Layer *pLayer = m_pLayers; while(pLayer) { train(pLayer->id(), batch, miniBatchSize, numEpochs, pListener); @@ -156,7 +156,7 @@ void Stack::train(const arma::mat& batch, size_t miniBatchSize, size_t numEpochs void Stack::train(size_t layerId, const arma::mat& batch, size_t miniBatchSize, size_t numEpochs, Rbm::IListener* pListener) { arma::mat thisBatch = batch; - RbmLayer *pLayer = m_pLayers; + Layer *pLayer = m_pLayers; while(pLayer) { if (pLayer->id() == layerId) diff --git a/source/Stack.hpp b/source/Stack.hpp index 7829d9b..c5bb14b 100644 --- a/source/Stack.hpp +++ b/source/Stack.hpp @@ -18,7 +18,7 @@ #include #include #include -#include "RbmLayer.hpp" +#include "Layer.hpp" class Stack { @@ -27,8 +27,8 @@ public: Stack(const Stack& orig); virtual ~Stack(); - void addLayer(RbmLayer *pLayer); - RbmLayer* getLayer(size_t layerId) const; + void addLayer(Layer *pLayer); + Layer* getLayer(size_t layerId) const; void train(size_t layerId, const arma::mat& batch, size_t miniBatchSize, size_t numEpochs, Rbm::IListener* pListener); void train(const arma::mat& batch, size_t miniBatchSize, size_t numEpochs, Rbm::IListener* pListener); @@ -39,7 +39,7 @@ public: private: const std::string &m_prjname; - RbmLayer *m_pLayers; + Layer *m_pLayers; }; diff --git a/source/main.cpp b/source/main.cpp index 7918ee7..a2e9be9 100644 --- a/source/main.cpp +++ b/source/main.cpp @@ -7,7 +7,7 @@ #include #include #include "Rbm.hpp" -#include "RbmLayer.hpp" +#include "Layer.hpp" #include "Stack.hpp" using namespace std; @@ -95,14 +95,14 @@ int main() size_t numHidden = 256; int i=0; - RbmLayer *lowerLayer = new RbmLayer("Layer", i, numVisibleX, numVisibleY, numHidden); + Layer *lowerLayer = new Layer("Layer", i, numVisibleX, numVisibleY, numHidden); stack.addLayer(lowerLayer); numHidden >>= 1; i++; for (i; i < 1; i++) { - RbmLayer *layer = new RbmLayer("Layer", i, lowerLayer->bh().n_elem, 1, numHidden); + Layer *layer = new Layer("Layer", i, lowerLayer->bh().n_elem, 1, numHidden); lowerLayer = layer; stack.addLayer(layer); numHidden >>= 1; @@ -123,7 +123,7 @@ int main() // Save weights stack.saveWeights(); - RbmLayer *layer = stack.getLayer(0); + Layer *layer = stack.getLayer(0); arma::mat v = arma::randu(numTraining, layer->bv().n_elem); arma::mat h = layer->toHiddenProbs(v); arma::mat r = layer->toVisibleProbs(h);