- bring back calcContextBatch
git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@840 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
@@ -118,6 +118,23 @@ arma::mat Layer::vc_to_v(const arma::mat& vc) const
|
|||||||
return arma::reshape(vc, 1, numVisible() - m_numContext);
|
return arma::reshape(vc, 1, numVisible() - m_numContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Layer::calcContextBatch(arma::mat& batch)
|
||||||
|
{
|
||||||
|
size_t numTraining = batch.n_rows;
|
||||||
|
|
||||||
|
if (m_numContext > 0 and numTraining > 0)
|
||||||
|
{
|
||||||
|
for (int i = 1; i < numTraining; i++)
|
||||||
|
{
|
||||||
|
arma::mat v = batch.row(i - 1);
|
||||||
|
arma::mat h = arma::zeros(1, numHidden());
|
||||||
|
gibbs_vh(v, h);
|
||||||
|
arma::mat training_with_ctx = arma::join_rows(batch.row(i).cols(0, numVisible() - m_numContext - 1), h);
|
||||||
|
batch.row(i) = training_with_ctx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Layer::train(const arma::mat& batch, IListener* pListener)
|
void Layer::train(const arma::mat& batch, IListener* pListener)
|
||||||
{
|
{
|
||||||
std::cout << m_name << ": " << " Training of layer " << std::to_string(id()) << std::endl;
|
std::cout << m_name << ": " << " Training of layer " << std::to_string(id()) << std::endl;
|
||||||
|
|||||||
+2
-1
@@ -48,7 +48,8 @@ public:
|
|||||||
bool weightsLoad(std::string const &dir, std::string const &prj);
|
bool weightsLoad(std::string const &dir, std::string const &prj);
|
||||||
bool weightsSave(std::string const &dir, std::string const &prj);
|
bool weightsSave(std::string const &dir, std::string const &prj);
|
||||||
|
|
||||||
void train(arma::mat const &batch, IListener *pListener=nullptr);
|
void calcContextBatch(arma::mat &batch);
|
||||||
|
void train(arma::mat const &batch, IListener *pListener=nullptr);
|
||||||
|
|
||||||
arma::mat to_h_gibbs(const arma::mat& v_probs);
|
arma::mat to_h_gibbs(const arma::mat& v_probs);
|
||||||
arma::mat to_v_gibbs(const arma::mat& h_probs);
|
arma::mat to_v_gibbs(const arma::mat& h_probs);
|
||||||
|
|||||||
@@ -903,7 +903,7 @@ const juce::String& MainComponent::getBaseDir()
|
|||||||
void MainComponent::run()
|
void MainComponent::run()
|
||||||
{
|
{
|
||||||
trainButton->setButtonText (TRANS("Stop"));
|
trainButton->setButtonText (TRANS("Stop"));
|
||||||
// m_pLayer->calcContextBatch(m_stack->trainingBatch());
|
m_pLayer->calcContextBatch(m_stack->trainingBatch());
|
||||||
m_stack->train(m_pLayer->id(), m_stack->trainingBatch(), this);
|
m_stack->train(m_pLayer->id(), m_stack->trainingBatch(), this);
|
||||||
trainButton->setButtonText (TRANS("Train"));
|
trainButton->setButtonText (TRANS("Train"));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user