- train layer instead of stack
- fixed downPass upPass git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@645 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
+33
-1
@@ -36,7 +36,11 @@ public:
|
||||
|
||||
arma::mat up_pass(const arma::mat& hidden);
|
||||
arma::mat down_pass(const arma::mat& visible);
|
||||
|
||||
void train(arma::mat const &batch, IListener *pListener=nullptr)
|
||||
{
|
||||
Rbm::train(trainingData(batch), pListener);
|
||||
}
|
||||
|
||||
std::string& name()
|
||||
{
|
||||
return m_name;
|
||||
@@ -61,7 +65,35 @@ public:
|
||||
{
|
||||
return m_bh.n_elem;
|
||||
}
|
||||
|
||||
arma::mat trainingData(arma::mat const &batch)
|
||||
{
|
||||
arma::mat thisBatch = batch;
|
||||
Layer *pLayer = root();
|
||||
while (pLayer)
|
||||
{
|
||||
if (pLayer == this)
|
||||
{
|
||||
break;
|
||||
}
|
||||
thisBatch = pLayer->toHiddenProbs(thisBatch);
|
||||
pLayer = pLayer->next;
|
||||
}
|
||||
return thisBatch;
|
||||
}
|
||||
|
||||
Layer *root()
|
||||
{
|
||||
Layer *pLayer = this;
|
||||
while(pLayer->prev)
|
||||
{
|
||||
pLayer = pLayer->prev;
|
||||
}
|
||||
return pLayer;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
std::string m_name;
|
||||
std::string m_weightsFile;
|
||||
size_t m_id;
|
||||
|
||||
Reference in New Issue
Block a user