diff --git a/source/AStack.cpp b/source/AStack.cpp index 9c4de3d..d1e6b31 100644 --- a/source/AStack.cpp +++ b/source/AStack.cpp @@ -115,16 +115,19 @@ void AStack::weightsInit(double stddev) bool AStack::loadWeights(const std::string &dir) { + bool result = true; Layer *pLayer = m_pLayers; while(pLayer) { - if (!pLayer->weightsLoad(dir, m_name)) + bool success = pLayer->weightsLoad(dir, m_name); + if (!success) { - return false; + pLayer->weightsInit(0.01, 0); } + result &= success; pLayer = pLayer->next; } - return true; + return result; } bool AStack::saveWeights(const std::string &dir) diff --git a/source/poet.cpp b/source/poet.cpp index 104f543..0887884 100644 --- a/source/poet.cpp +++ b/source/poet.cpp @@ -138,8 +138,8 @@ arma::mat createTraining(const string &filename, size_t seq_len) } #define CREATE_TRAINING 0 -#define DO_TRAINING 0 -#define DO_FORWARD 1 +#define DO_TRAINING 1 +#define DO_FORWARD 0 int main() { @@ -167,16 +167,12 @@ int main() stack->setParams(params); RbmListener listener; - for (int i=0; i < stack->getSeqLen(); i++) - { - stack->getLayer(i)->weightsInit(0.01,0); - } - // Phase 10 params.numEpochs = 2000; stack->setParams(params); stack->train(t_vc, &listener); +#if 0 // Phase 11 params.numEpochs = 10000; stack->setParams(params); @@ -186,6 +182,7 @@ int main() params.numGibbs = numGibbs; stack->setParams(params); stack->train(t_vc, &listener); +#endif stack->saveWeights("."); stack->save(".");