- added Stack::save()
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@579 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
+64
-1
@@ -13,11 +13,17 @@
|
||||
|
||||
#include "Stack.hpp"
|
||||
|
||||
Stack::Stack()
|
||||
using namespace std;
|
||||
|
||||
Stack::Stack(const std::string &prjname)
|
||||
: m_prjname(prjname)
|
||||
, m_pLayers(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
Stack::Stack(const Stack& orig)
|
||||
: m_prjname(orig.m_prjname)
|
||||
, m_pLayers(orig.m_pLayers)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -25,3 +31,60 @@ Stack::~Stack()
|
||||
{
|
||||
}
|
||||
|
||||
void Stack::addLayer(Layer *pOtherLayer)
|
||||
{
|
||||
if (!m_pLayers)
|
||||
{
|
||||
m_pLayers = pOtherLayer;
|
||||
pOtherLayer->lower = nullptr;
|
||||
}
|
||||
else
|
||||
{
|
||||
Layer *pLayer = m_pLayers;
|
||||
while(pLayer->upper)
|
||||
{
|
||||
pLayer = pLayer->upper;
|
||||
}
|
||||
pLayer->upper = pOtherLayer;
|
||||
pOtherLayer->lower = pLayer;
|
||||
}
|
||||
}
|
||||
|
||||
const Layer* Stack::getLayer(size_t id)
|
||||
{
|
||||
Layer *pLayer = m_pLayers;
|
||||
while(pLayer)
|
||||
{
|
||||
if (pLayer->id() == id)
|
||||
{
|
||||
return pLayer;
|
||||
}
|
||||
pLayer = pLayer->upper;
|
||||
}
|
||||
return nullptr;
|
||||
|
||||
}
|
||||
|
||||
void Stack::save(size_t numTraining)
|
||||
{
|
||||
ofstream ofs(m_prjname + string(".prj"));
|
||||
|
||||
Json::StyledWriter writer;
|
||||
Json::Value project;
|
||||
project["stack"]["name"] = m_prjname;
|
||||
project["stack"]["num_training"] = (int)numTraining;
|
||||
project["stack"]["training_file"] = m_prjname + string(".training.dat");
|
||||
|
||||
Json::Value layers(Json::arrayValue);
|
||||
Layer *pLayer = m_pLayers;
|
||||
while(pLayer)
|
||||
{
|
||||
layers.append(pLayer->toJson());
|
||||
pLayer = pLayer->upper;
|
||||
}
|
||||
project["stack"]["layers"] = layers;
|
||||
|
||||
ofs << writer.write(project);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user