- added early stop of training

- fixed non-visible training data after load

git-svn-id: http://moon:8086/svn/software/trunk/projects/RBM@554 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2019-10-17 19:48:14 +00:00
parent 0f2fe2b315
commit 2c2039ec2f
4 changed files with 25 additions and 7 deletions
+10 -1
View File
@@ -98,7 +98,7 @@ MatrixXd Rbm::normalizeData(MatrixXd const &src)
}
void Rbm::train(size_t numEpochs, size_t miniBatchSize, double sigmaMin)
void Rbm::train(size_t numEpochs, size_t miniBatchSize, bool &doStop)
{
size_t i;
size_t epoch;
@@ -124,6 +124,11 @@ void Rbm::train(size_t numEpochs, size_t miniBatchSize, double sigmaMin)
m_progress = 0;
while (trainingSizeRemain)
{
if (doStop)
{
break;
}
cout << "trainingSizeRemain: " << trainingSizeRemain << endl;
size_t toSlice = std::min(miniBatchSize, trainingSizeRemain);
MatrixXd batch = __batch.block(batchRowIndex, 0, toSlice, m_w.getNumVisible());
@@ -140,6 +145,10 @@ void Rbm::train(size_t numEpochs, size_t miniBatchSize, double sigmaMin)
for (epoch=0; epoch < numEpochs; epoch++)
{
if (doStop)
{
break;
}
onProgressChanged();
// Create hidden layer base on training data