- 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);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
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 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_v_gibbs(const arma::mat& h_probs);
|
||||
|
||||
@@ -903,7 +903,7 @@ const juce::String& MainComponent::getBaseDir()
|
||||
void MainComponent::run()
|
||||
{
|
||||
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);
|
||||
trainButton->setButtonText (TRANS("Train"));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user