From 279d6e9d7306cacc2b28b736f47bc274631fd2ea Mon Sep 17 00:00:00 2001
From: Victor Poughon <victor.poughon@cnes.fr>
Date: Wed, 5 Apr 2017 16:19:51 +0200
Subject: [PATCH] REFAC: remove deprecated MachineLearningModel::PredictAll()

---
 .../app/otbOGRLayerClassifier.cxx             |   4 +-
 .../include/otbLearningApplicationBase.txx    |   5 +-
 .../include/otbMachineLearningModel.h         |   5 +-
 .../include/otbMachineLearningModel.txx       |  15 ---
 .../test/otbTrainMachineLearningModel.cxx     | 109 +++++-------------
 5 files changed, 32 insertions(+), 106 deletions(-)

diff --git a/Modules/Applications/AppClassification/app/otbOGRLayerClassifier.cxx b/Modules/Applications/AppClassification/app/otbOGRLayerClassifier.cxx
index 807459cd48..1add64f928 100644
--- a/Modules/Applications/AppClassification/app/otbOGRLayerClassifier.cxx
+++ b/Modules/Applications/AppClassification/app/otbOGRLayerClassifier.cxx
@@ -192,10 +192,8 @@ private:
 
     typedef otb::LibSVMMachineLearningModel<ValueType,LabelPixelType> LibSVMType;
     LibSVMType::Pointer libSVMClassifier = LibSVMType::New();
-    libSVMClassifier->SetInputListSample(trainingListSample);
-    libSVMClassifier->SetTargetListSample(trainingLabeledListSample);
     libSVMClassifier->Load(modelfile);
-    libSVMClassifier->PredictAll();
+    trainingLabeledListSample = libSVMClassifier->PredictBatch(trainingListSample);
 
     otb::ogr::DataSource::Pointer source2 = otb::ogr::DataSource::New(shapefile, otb::ogr::DataSource::Modes::Update_LayerUpdate);
     otb::ogr::Layer layer2 = source2->GetLayer(0);
diff --git a/Modules/Applications/AppClassification/include/otbLearningApplicationBase.txx b/Modules/Applications/AppClassification/include/otbLearningApplicationBase.txx
index c0a66443a8..cd0e243dc4 100644
--- a/Modules/Applications/AppClassification/include/otbLearningApplicationBase.txx
+++ b/Modules/Applications/AppClassification/include/otbLearningApplicationBase.txx
@@ -109,9 +109,8 @@ LearningApplicationBase<TInputValue,TOutputValue>
 
   model->Load(modelPath);
   model->SetRegressionMode(this->m_RegressionFlag);
-  model->SetInputListSample(validationListSample);
-  model->SetTargetListSample(predictedList);
-  model->PredictAll();
+
+  predictedList = model->PredictBatch(validationListSample, NULL);
 
   // update reporter
   dummyFilter->UpdateProgress(1.0f);
diff --git a/Modules/Learning/Supervised/include/otbMachineLearningModel.h b/Modules/Learning/Supervised/include/otbMachineLearningModel.h
index a71d819eff..93bce2d2e6 100644
--- a/Modules/Learning/Supervised/include/otbMachineLearningModel.h
+++ b/Modules/Learning/Supervised/include/otbMachineLearningModel.h
@@ -126,9 +126,6 @@ public:
      */
   typename TargetListSampleType::Pointer PredictBatch(const InputListSampleType * input, ConfidenceListSampleType * quality = ITK_NULLPTR) const;
   
-  /** THIS METHOD IS DEPRECATED AND SHOULD NOT BE USED. */
-  void PredictAll();
-
   /**\name Classification model file manipulation */
   //@{
   /** Save the model to file */
@@ -161,7 +158,7 @@ public:
   //@{
   /** Set the target labels (to be used before training) */
   itkSetObjectMacro(TargetListSample,TargetListSampleType);
-  /** Get the target labels (to be used after PredictAll) */
+  /** Get the target labels */
   itkGetObjectMacro(TargetListSample,TargetListSampleType);
   //@}
 
diff --git a/Modules/Learning/Supervised/include/otbMachineLearningModel.txx b/Modules/Learning/Supervised/include/otbMachineLearningModel.txx
index 0c89a19d81..678974e9d4 100644
--- a/Modules/Learning/Supervised/include/otbMachineLearningModel.txx
+++ b/Modules/Learning/Supervised/include/otbMachineLearningModel.txx
@@ -63,21 +63,6 @@ MachineLearningModel<TInputValue,TOutputValue,TConfidenceValue>
     }
 }
 
-template <class TInputValue, class TOutputValue, class TConfidenceValue>
-void
-MachineLearningModel<TInputValue,TOutputValue,TConfidenceValue>
-::PredictAll()
-{
-  itkWarningMacro("MachineLearningModel::PredictAll() has been DEPRECATED. Use MachineLearningModel::PredictBatch() instead.");
-  
-  typename TargetListSampleType::Pointer targets = this->GetTargetListSample();
-  targets->Clear();
-  
-  typename TargetListSampleType::Pointer tmpTargets = this->PredictBatch(this->GetInputListSample());
-  
-  targets->Graft(tmpTargets);
-}
-
 template <class TInputValue, class TOutputValue, class TConfidenceValue>
 typename MachineLearningModel<TInputValue,TOutputValue,TConfidenceValue>
 ::TargetSampleType
diff --git a/Modules/Learning/Supervised/test/otbTrainMachineLearningModel.cxx b/Modules/Learning/Supervised/test/otbTrainMachineLearningModel.cxx
index 5fc1f79f1d..5400a0abb4 100644
--- a/Modules/Learning/Supervised/test/otbTrainMachineLearningModel.cxx
+++ b/Modules/Learning/Supervised/test/otbTrainMachineLearningModel.cxx
@@ -204,7 +204,6 @@ int otbLibSVMMachineLearningModel(int argc, char * argv[])
   typedef otb::LibSVMMachineLearningModel<InputValueType, TargetValueType> SVMType;
   InputListSampleType::Pointer samples = InputListSampleType::New();
   TargetListSampleType::Pointer labels = TargetListSampleType::New();
-  TargetListSampleType::Pointer predicted = TargetListSampleType::New();
 
   if (!ReadDataFile(argv[1], samples, labels))
     {
@@ -217,8 +216,7 @@ int otbLibSVMMachineLearningModel(int argc, char * argv[])
   classifier->SetTargetListSample(labels);
   classifier->Train();
 
-  classifier->SetTargetListSample(predicted);
-  classifier->PredictAll();
+  TargetListSampleType::Pointer predicted = classifier->PredictBatch(samples, NULL);
 
   ConfusionMatrixCalculatorType::Pointer cmCalculator = ConfusionMatrixCalculatorType::New();
 
@@ -235,13 +233,10 @@ int otbLibSVMMachineLearningModel(int argc, char * argv[])
   classifier->Save(argv[2]);
 
   //Load Model to new LibSVM
-  TargetListSampleType::Pointer predictedLoad = TargetListSampleType::New();
   SVMType::Pointer classifierLoad = SVMType::New();
 
   classifierLoad->Load(argv[2]);
-  classifierLoad->SetInputListSample(samples);
-  classifierLoad->SetTargetListSample(predictedLoad);
-  classifierLoad->PredictAll();
+  TargetListSampleType::Pointer predictedLoad = classifierLoad->PredictBatch(samples, NULL);
 
   ConfusionMatrixCalculatorType::Pointer cmCalculatorLoad = ConfusionMatrixCalculatorType::New();
 
@@ -298,7 +293,6 @@ int otbSVMMachineLearningModel(int argc, char * argv[])
 
   InputListSampleType::Pointer samples = InputListSampleType::New();
   TargetListSampleType::Pointer labels = TargetListSampleType::New();
-  TargetListSampleType::Pointer predicted = TargetListSampleType::New();
 
   if(!ReadDataFile(argv[1],samples,labels))
     {
@@ -311,8 +305,7 @@ int otbSVMMachineLearningModel(int argc, char * argv[])
   classifier->SetTargetListSample(labels);
   classifier->Train();
 
-  classifier->SetTargetListSample(predicted);
-  classifier->PredictAll();
+  TargetListSampleType::Pointer predicted = classifier->PredictBatch(samples, NULL);
 
   classifier->Save(argv[2]);
 
@@ -329,13 +322,10 @@ int otbSVMMachineLearningModel(int argc, char * argv[])
   std::cout<<"Overall Accuracy: "<<cmCalculator->GetOverallAccuracy()<<std::endl;
 
   //Load Model to new SVM
-  TargetListSampleType::Pointer predictedLoad = TargetListSampleType::New();
   SVMType::Pointer classifierLoad = SVMType::New();
 
   classifierLoad->Load(argv[2]);
-  classifierLoad->SetInputListSample(samples);
-  classifierLoad->SetTargetListSample(predictedLoad);
-  classifierLoad->PredictAll();
+  TargetListSampleType::Pointer predictedLoad = classifierLoad->PredictBatch(samples);
 
   ConfusionMatrixCalculatorType::Pointer cmCalculatorLoad = ConfusionMatrixCalculatorType::New();
 
@@ -373,7 +363,6 @@ int otbSVMMachineLearningRegressionModel(int argc, char * argv[])
 
   InputListSampleRegressionType::Pointer samples = InputListSampleRegressionType::New();
   TargetListSampleRegressionType::Pointer labels = TargetListSampleRegressionType::New();
-  TargetListSampleRegressionType::Pointer predicted = TargetListSampleRegressionType::New();
 
   if(!ReadDataRegressionFile(argv[1],samples,labels))
     {
@@ -415,9 +404,7 @@ int otbSVMMachineLearningRegressionModel(int argc, char * argv[])
   samplesT->SetMeasurementVectorSize(itk::NumericTraits<InputSampleRegressionType>::GetLength(sample));
   samplesT->PushBack(sample);
 
-  classifier->SetInputListSample(samplesT);
-  classifier->SetTargetListSample(predicted);
-  classifier->PredictAll();
+  TargetListSampleRegressionType::Pointer predicted = classifier->PredictBatch(samplesT, NULL);
 
   const float age = 15;
 
@@ -451,7 +438,6 @@ int otbKNearestNeighborsMachineLearningModel(int argc, char * argv[])
   typedef otb::KNearestNeighborsMachineLearningModel<InputValueType,TargetValueType> KNearestNeighborsType;
   InputListSampleType::Pointer samples = InputListSampleType::New();
   TargetListSampleType::Pointer labels = TargetListSampleType::New();
-  TargetListSampleType::Pointer predicted = TargetListSampleType::New();
 
   if(!ReadDataFile(argv[1],samples,labels))
     {
@@ -466,8 +452,7 @@ int otbKNearestNeighborsMachineLearningModel(int argc, char * argv[])
   //write the model
   classifier->Save(argv[2]);
 
-  classifier->SetTargetListSample(predicted);
-  classifier->PredictAll();
+  TargetListSampleType::Pointer predicted = classifier->PredictBatch(samples, NULL);
 
   ConfusionMatrixCalculatorType::Pointer cmCalculator = ConfusionMatrixCalculatorType::New();
 
@@ -483,13 +468,10 @@ int otbKNearestNeighborsMachineLearningModel(int argc, char * argv[])
 
 
   //Load Model to new KNN
-  TargetListSampleType::Pointer predictedLoad = TargetListSampleType::New();
   KNearestNeighborsType::Pointer classifierLoad = KNearestNeighborsType::New();
 
   classifierLoad->Load(argv[2]);
-  classifierLoad->SetInputListSample(samples);
-  classifierLoad->SetTargetListSample(predictedLoad);
-  classifierLoad->PredictAll();
+  TargetListSampleType::Pointer predictedLoad = classifierLoad->PredictBatch(samples, NULL);
 
   ConfusionMatrixCalculatorType::Pointer cmCalculatorLoad = ConfusionMatrixCalculatorType::New();
 
@@ -533,7 +515,6 @@ int otbRandomForestsMachineLearningModel(int argc, char * argv[])
   typedef otb::RandomForestsMachineLearningModel<InputValueType,TargetValueType> RandomForestType;
   InputListSampleType::Pointer samples = InputListSampleType::New();
   TargetListSampleType::Pointer labels = TargetListSampleType::New();
-  TargetListSampleType::Pointer predicted = TargetListSampleType::New();
 
   if(!ReadDataFile(argv[1],samples,labels))
     {
@@ -558,8 +539,7 @@ int otbRandomForestsMachineLearningModel(int argc, char * argv[])
   classifier->Train();
   classifier->Save(argv[2]);
 
-  classifier->SetTargetListSample(predicted);
-  classifier->PredictAll();
+  TargetListSampleType::Pointer predicted = classifier->PredictBatch(samples, NULL);
 
   ConfusionMatrixCalculatorType::Pointer cmCalculator = ConfusionMatrixCalculatorType::New();
 
@@ -574,13 +554,10 @@ int otbRandomForestsMachineLearningModel(int argc, char * argv[])
   std::cout<<"Overall Accuracy: "<<cmCalculator->GetOverallAccuracy()<<std::endl;
 
   //Load Model to new RF
-  TargetListSampleType::Pointer predictedLoad = TargetListSampleType::New();
   RandomForestType::Pointer classifierLoad = RandomForestType::New();
 
   classifierLoad->Load(argv[2]);
-  classifierLoad->SetInputListSample(samples);
-  classifierLoad->SetTargetListSample(predictedLoad);
-  classifierLoad->PredictAll();
+  TargetListSampleType::Pointer predictedLoad = classifierLoad->PredictBatch(samples, NULL);
 
   ConfusionMatrixCalculatorType::Pointer cmCalculatorLoad = ConfusionMatrixCalculatorType::New();
 
@@ -625,7 +602,6 @@ int otbBoostMachineLearningModel(int argc, char * argv[])
 
   InputListSampleType::Pointer samples = InputListSampleType::New();
   TargetListSampleType::Pointer labels = TargetListSampleType::New();
-  TargetListSampleType::Pointer predicted = TargetListSampleType::New();
 
   if(!ReadDataFile(argv[1],samples,labels))
     {
@@ -647,8 +623,7 @@ int otbBoostMachineLearningModel(int argc, char * argv[])
   classifier->SetTargetListSample(labels);
   classifier->Train();
 
-  classifier->SetTargetListSample(predicted);
-  classifier->PredictAll();
+  TargetListSampleType::Pointer predicted = classifier->PredictBatch(samples, NULL);
 
   classifier->Save(argv[2]);
 
@@ -665,13 +640,10 @@ int otbBoostMachineLearningModel(int argc, char * argv[])
   std::cout<<"Overall Accuracy: "<<cmCalculator->GetOverallAccuracy()<<std::endl;
 
   //Load Model to new Boost model
-  TargetListSampleType::Pointer predictedLoad = TargetListSampleType::New();
   BoostType::Pointer classifierLoad = BoostType::New();
 
   classifierLoad->Load(argv[2]);
-  classifierLoad->SetInputListSample(samples);
-  classifierLoad->SetTargetListSample(predictedLoad);
-  classifierLoad->PredictAll();
+  TargetListSampleType::Pointer predictedLoad = classifierLoad->PredictBatch(samples, NULL);
 
   ConfusionMatrixCalculatorType::Pointer cmCalculatorLoad = ConfusionMatrixCalculatorType::New();
 
@@ -716,7 +688,6 @@ int otbANNMachineLearningModel(int argc, char * argv[])
   typedef otb::NeuralNetworkMachineLearningModel<InputValueType, TargetValueType> ANNType;
   InputListSampleType::Pointer samples = InputListSampleType::New();
   TargetListSampleType::Pointer labels = TargetListSampleType::New();
-  TargetListSampleType::Pointer predicted = TargetListSampleType::New();
 
   if (!ReadDataFile(argv[1], samples, labels))
     {
@@ -742,8 +713,7 @@ int otbANNMachineLearningModel(int argc, char * argv[])
   classifier->SetEpsilon(0.01); */
   classifier->Train();
 
-  classifier->SetTargetListSample(predicted);
-  classifier->PredictAll();
+  TargetListSampleType::Pointer predicted = classifier->PredictBatch(samples, NULL);
 
   ConfusionMatrixCalculatorType::Pointer cmCalculator = ConfusionMatrixCalculatorType::New();
 
@@ -760,13 +730,10 @@ int otbANNMachineLearningModel(int argc, char * argv[])
   classifier->Save(argv[2]);
 
   //Load Model to new ANN
-  TargetListSampleType::Pointer predictedLoad = TargetListSampleType::New();
   ANNType::Pointer classifierLoad = ANNType::New();
 
   classifierLoad->Load(argv[2]);
-  classifierLoad->SetInputListSample(samples);
-  classifierLoad->SetTargetListSample(predictedLoad);
-  classifierLoad->PredictAll();
+  TargetListSampleType::Pointer predictedLoad = classifierLoad->PredictBatch(samples, NULL);
 
   ConfusionMatrixCalculatorType::Pointer cmCalculatorLoad = ConfusionMatrixCalculatorType::New();
 
@@ -811,7 +778,6 @@ int otbNormalBayesMachineLearningModel(int argc, char * argv[])
 
   InputListSampleType::Pointer samples = InputListSampleType::New();
   TargetListSampleType::Pointer labels = TargetListSampleType::New();
-  TargetListSampleType::Pointer predicted = TargetListSampleType::New();
 
   if(!ReadDataFile(argv[1],samples,labels))
     {
@@ -824,8 +790,7 @@ int otbNormalBayesMachineLearningModel(int argc, char * argv[])
   classifier->SetTargetListSample(labels);
   classifier->Train();
 
-  classifier->SetTargetListSample(predicted);
-  classifier->PredictAll();
+  TargetListSampleType::Pointer predicted = classifier->PredictBatch(samples, NULL);
 
   classifier->Save(argv[2]);
 
@@ -842,13 +807,10 @@ int otbNormalBayesMachineLearningModel(int argc, char * argv[])
   std::cout<<"Overall Accuracy: "<<cmCalculator->GetOverallAccuracy()<<std::endl;
 
   //Load Model to new Normal Bayes
-  TargetListSampleType::Pointer predictedLoad = TargetListSampleType::New();
   NormalBayesType::Pointer classifierLoad = NormalBayesType::New();
 
   classifierLoad->Load(argv[2]);
-  classifierLoad->SetInputListSample(samples);
-  classifierLoad->SetTargetListSample(predictedLoad);
-  classifierLoad->PredictAll();
+  TargetListSampleType::Pointer predictedLoad = classifierLoad->PredictBatch(samples, NULL);
 
   ConfusionMatrixCalculatorType::Pointer cmCalculatorLoad = ConfusionMatrixCalculatorType::New();
 
@@ -893,7 +855,6 @@ int otbDecisionTreeMachineLearningModel(int argc, char * argv[])
 
   InputListSampleType::Pointer samples = InputListSampleType::New();
   TargetListSampleType::Pointer labels = TargetListSampleType::New();
-  TargetListSampleType::Pointer predicted = TargetListSampleType::New();
 
   if(!ReadDataFile(argv[1],samples,labels))
     {
@@ -906,8 +867,7 @@ int otbDecisionTreeMachineLearningModel(int argc, char * argv[])
   classifier->SetTargetListSample(labels);
   classifier->Train();
 
-  classifier->SetTargetListSample(predicted);
-  classifier->PredictAll();
+  TargetListSampleType::Pointer predicted = classifier->PredictBatch(samples, NULL);
 
   classifier->Save(argv[2]);
 
@@ -924,13 +884,10 @@ int otbDecisionTreeMachineLearningModel(int argc, char * argv[])
   std::cout<<"Overall Accuracy: "<<cmCalculator->GetOverallAccuracy()<<std::endl;
 
   //Load Model to new Decision Tree
-  TargetListSampleType::Pointer predictedLoad = TargetListSampleType::New();
   DecisionTreeType::Pointer classifierLoad = DecisionTreeType::New();
 
   classifierLoad->Load(argv[2]);
-  classifierLoad->SetInputListSample(samples);
-  classifierLoad->SetTargetListSample(predictedLoad);
-  classifierLoad->PredictAll();
+  TargetListSampleType::Pointer predictedLoad = classifierLoad->PredictBatch(samples, NULL);
 
   ConfusionMatrixCalculatorType::Pointer cmCalculatorLoad = ConfusionMatrixCalculatorType::New();
 
@@ -976,7 +933,6 @@ int otbGradientBoostedTreeMachineLearningModel(int argc, char * argv[])
 
   InputListSampleType::Pointer samples = InputListSampleType::New();
   TargetListSampleType::Pointer labels = TargetListSampleType::New();
-  TargetListSampleType::Pointer predicted = TargetListSampleType::New();
 
   if(!ReadDataFile(argv[1],samples,labels))
     {
@@ -989,8 +945,7 @@ int otbGradientBoostedTreeMachineLearningModel(int argc, char * argv[])
   classifier->SetTargetListSample(labels);
   classifier->Train();
 
-  classifier->SetTargetListSample(predicted);
-  classifier->PredictAll();
+  TargetListSampleType::Pointer predicted = classifier->PredictBatch(samples, NULL);
 
   classifier->Save(argv[2]);
 
@@ -1007,13 +962,10 @@ int otbGradientBoostedTreeMachineLearningModel(int argc, char * argv[])
   std::cout<<"Overall Accuracy: "<<cmCalculator->GetOverallAccuracy()<<std::endl;
 
   //Load Model to new GBT
-  TargetListSampleType::Pointer predictedLoad = TargetListSampleType::New();
   GBTreeType::Pointer classifierLoad = GBTreeType::New();
 
   classifierLoad->Load(argv[2]);
-  classifierLoad->SetInputListSample(samples);
-  classifierLoad->SetTargetListSample(predictedLoad);
-  classifierLoad->PredictAll();
+  TargetListSampleType::Pointer predictedLoad = classifierLoad->PredictBatch(samples, NULL);
 
   ConfusionMatrixCalculatorType::Pointer cmCalculatorLoad = ConfusionMatrixCalculatorType::New();
 
@@ -1196,7 +1148,6 @@ int otbSharkRFMachineLearningModel(int argc, char * argv[])
   typedef otb::SharkRandomForestsMachineLearningModel<InputValueType,TargetValueType> RandomForestType;
   InputListSampleType::Pointer samples = InputListSampleType::New();
   TargetListSampleType::Pointer labels = TargetListSampleType::New();
-  TargetListSampleType::Pointer predicted = TargetListSampleType::New();
 
   if(!SharkReadDataFile(argv[1],samples,labels))
     {
@@ -1216,11 +1167,10 @@ int otbSharkRFMachineLearningModel(int argc, char * argv[])
   std::cout << "Train\n";
   classifier->Train();
   std::cout << "Save\n";
-  classifier->Save(argv[2]); 
-  
+  classifier->Save(argv[2]);
+
   std::cout << "Predict\n";
-  classifier->SetTargetListSample(predicted);
-  classifier->PredictAll();
+  TargetListSampleType::Pointer predicted = classifier->PredictBatch(samples, NULL);
 
   ConfusionMatrixCalculatorType::Pointer cmCalculator = ConfusionMatrixCalculatorType::New();
 
@@ -1233,7 +1183,7 @@ int otbSharkRFMachineLearningModel(int argc, char * argv[])
   const float kappaIdx = cmCalculator->GetKappaIndex();
   std::cout<<"Kappa: "<<kappaIdx<<std::endl;
   std::cout<<"Overall Accuracy: "<<cmCalculator->GetOverallAccuracy()<<std::endl;
-  
+
   // //Predict single samples. Written for benchmarking purposes, but
   // too long for regression testing
   // std::cout << "Predict single samples\n";
@@ -1244,27 +1194,24 @@ int otbSharkRFMachineLearningModel(int argc, char * argv[])
   //   {
   //   classifier->Predict(sIt.GetMeasurementVector())[0];
   //   }
-  // auto duration = std::chrono::duration_cast< TimeT> 
+  // auto duration = std::chrono::duration_cast< TimeT>
   //   (std::chrono::system_clock::now() - start);
   // auto elapsed = duration.count();
   // std::cout << "Predict took " << elapsed << " ms\n";
   //  std::cout << "Single sample OA = " << oa << '\n';
 //Load Model to new RF
-  TargetListSampleType::Pointer predictedLoad = TargetListSampleType::New();
   RandomForestType::Pointer classifierLoad = RandomForestType::New();
 
   std::cout << "Load\n";
   classifierLoad->Load(argv[2]);
   auto start = std::chrono::system_clock::now();
-  classifierLoad->SetInputListSample(samples);
-  classifierLoad->SetTargetListSample(predictedLoad);
   std::cout << "Predict loaded\n";
-  classifierLoad->PredictAll();
+  TargetListSampleType::Pointer predictedLoad = classifierLoad->PredictBatch(samples, NULL);
   using TimeT = std::chrono::milliseconds;
-  auto duration = std::chrono::duration_cast< TimeT> 
+  auto duration = std::chrono::duration_cast< TimeT>
     (std::chrono::system_clock::now() - start);
   auto elapsed = duration.count();
-  std::cout << "PredictAll took " << elapsed << " ms\n";
+  std::cout << "PredictBatch took " << elapsed << " ms\n";
   ConfusionMatrixCalculatorType::Pointer cmCalculatorLoad = ConfusionMatrixCalculatorType::New();
 
    cmCalculatorLoad->SetProducedLabels(predictedLoad);
@@ -1286,7 +1233,7 @@ int otbSharkRFMachineLearningModel(int argc, char * argv[])
      {
      return EXIT_FAILURE;
      }
-  
+
    return EXIT_SUCCESS;
 }
 
-- 
GitLab