Эх сурвалжийг харах

adjusted unit test Gradient Descent

Johannes Ruehle 12 жил өмнө
parent
commit
1c4c4fb2c6

+ 8 - 7
tests/TestGradientDescent.cpp

@@ -51,10 +51,10 @@ void TestGradientDescent::testGD_1Dim ()
   optimization::matrix_type searchSteps (dim, 1);
   searchSteps[0][0] = 1.0f;
 
-  //optimizer.setVerbose(true);
+  optimizer.setVerbose(true);
   optimizer.setStepSize( searchSteps );
   optimizer.setMaxNumIter(true, 1000);
-  optimizer.setFuncTol(true, 1e-8);
+//  optimizer.setFuncTol(true, 1e-8);
   optimizer.optimizeProb ( optProblem );  
   
   optimization::matrix_type optimizedParams (optProblem.getAllCurrentParams());
@@ -64,7 +64,7 @@ void TestGradientDescent::testGD_1Dim ()
   if (verbose)
     std::cerr << "1d optimization -- result " << optimizedParams[0][0] << " -- goal: " << goal << std::endl;
 
-  CPPUNIT_ASSERT_DOUBLES_EQUAL( optimizedParams[0][0], goal, 1e-4 /* tolerance */);
+  CPPUNIT_ASSERT_DOUBLES_EQUAL( optimizedParams[0][0], goal, 1e-5 /* tolerance */);
 
   if (verboseStartEnd)
     std::cerr << "================== TestGradientDescent::testGD_1Dim done ===================== " << std::endl;
@@ -99,10 +99,11 @@ void TestGradientDescent::testGD_2Dim()
   searchSteps[0][0] = 1.0f;
   searchSteps[1][0] = 1.0f;
 
-  //optimizer.setVerbose(true);
+  optimizer.setVerbose(true);
   optimizer.setStepSize( searchSteps );
   optimizer.setMaxNumIter(true, 1000);
-  optimizer.setFuncTol(true, 1e-8);
+  //optimizer.setMinimalGradientMagnitude(1e-25);
+//  optimizer.setFuncTol(true, 1e-8);
   optimizer.optimizeProb ( optProblem );
   
   optimization::matrix_type optimizedParams (optProblem.getAllCurrentParams());
@@ -116,8 +117,8 @@ void TestGradientDescent::testGD_2Dim()
     std::cerr << "2d optimization  1st dim-- result " << optimizedParams[1][0] << " -- goal: " << goalSecondDim << std::endl;
   }
 
-  CPPUNIT_ASSERT_DOUBLES_EQUAL( optimizedParams[0][0], goalFirstDim, 1e-4 /* tolerance */);
-  CPPUNIT_ASSERT_DOUBLES_EQUAL( optimizedParams[1][0], goalSecondDim, 1e-4 /* tolerance */);
+  CPPUNIT_ASSERT_DOUBLES_EQUAL( optimizedParams[0][0], goalFirstDim, 1e-5 /* tolerance */);
+  CPPUNIT_ASSERT_DOUBLES_EQUAL( optimizedParams[1][0], goalSecondDim, 1e-5 /* tolerance */);
   
   
   if (verboseStartEnd)