- read/write of Stack project
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@589 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
+33
-5
@@ -65,7 +65,37 @@ RbmLayer* Stack::getLayer(size_t layerId) const
|
||||
|
||||
}
|
||||
|
||||
bool Stack::save(size_t numTraining)
|
||||
bool Stack::load()
|
||||
{
|
||||
std::cout << "Importing Project " << m_prjname << std::endl;
|
||||
ifstream ifs(m_prjname + string(".prj"));
|
||||
|
||||
Json::Reader reader;
|
||||
Json::Value project;
|
||||
reader.parse(ifs, project);
|
||||
|
||||
const string &prjname = project["stack"]["name"].asString();
|
||||
Json::Value &layers = project["stack"]["layers"];
|
||||
|
||||
for (int i=0; i < layers.size(); i++)
|
||||
{
|
||||
Json::Value &layer = layers[i];
|
||||
|
||||
string layername = layer["name"].asString();
|
||||
int numVisibleX = layer["numVisibleX"].asInt();
|
||||
int numVisibleY = layer["numVisibleY"].asInt();
|
||||
int numHidden = layer["numHidden"].asInt();
|
||||
Json::Value &rbm = layer["rbm"]["params"];
|
||||
Rbm::Params params;
|
||||
params.fromJson(rbm);
|
||||
|
||||
addLayer(new RbmLayer(layername, i, numVisibleX, numVisibleY, numHidden, params));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Stack::save()
|
||||
{
|
||||
std::cout << "Exporting Project " << m_prjname << std::endl;
|
||||
ofstream ofs(m_prjname + string(".prj"));
|
||||
@@ -73,8 +103,6 @@ bool Stack::save(size_t numTraining)
|
||||
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);
|
||||
RbmLayer *pLayer = m_pLayers;
|
||||
@@ -95,7 +123,7 @@ bool Stack::loadWeights()
|
||||
RbmLayer *pLayer = m_pLayers;
|
||||
while(pLayer)
|
||||
{
|
||||
if (!pLayer->loadWeights())
|
||||
if (!pLayer->loadWeights(m_prjname))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -109,7 +137,7 @@ bool Stack::saveWeights()
|
||||
RbmLayer *pLayer = m_pLayers;
|
||||
while(pLayer)
|
||||
{
|
||||
if (!pLayer->saveWeights())
|
||||
if (!pLayer->saveWeights(m_prjname))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user