diff --git a/NonLinearSolver/modelReduction/DeepMaterialNetworks.cpp b/NonLinearSolver/modelReduction/DeepMaterialNetworks.cpp
index f49a291bcd72bc184537c06d2009af660d85dd82..1fdead313a14010fe2a4d9e2a3b793db31181912 100644
--- a/NonLinearSolver/modelReduction/DeepMaterialNetworks.cpp
+++ b/NonLinearSolver/modelReduction/DeepMaterialNetworks.cpp
@@ -1739,6 +1739,7 @@ void TrainingDeepMaterialNetwork::train(double lr, int maxEpoch, std::string los
   int Ntrain = _XTrain.size();
   double lrCur = lr;
   int numEpochIncrease = 0;
+  int numEpochLrMin = 0;
   int numEpochDecrease = 0;
   while (true)
   {
@@ -1818,6 +1819,12 @@ void TrainingDeepMaterialNetwork::train(double lr, int maxEpoch, std::string los
           if (lrCur < lrmin)
           {
             lrCur = lrmin;
+            numEpochLrMin ++;
+            if (numEpochLrMin>10)
+            {
+              Msg::Info("maximal number of iterations %d at minimal learning step is reached !!",numEpochLrMin);
+              break;
+            }
           }
           numEpochDecrease = 0;
           Wcur = Wprev;