- 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:
+10
-1
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user