diff --git a/Modules/Learning/DimensionalityReductionLearning/include/otbImageDimensionalityReductionFilter.txx b/Modules/Learning/DimensionalityReductionLearning/include/otbImageDimensionalityReductionFilter.txx
index 2656e21e1f457716255e2068d62a1c9e03dc51bf..140a8cd874e3555f73d985e6234c926c93e04993 100644
--- a/Modules/Learning/DimensionalityReductionLearning/include/otbImageDimensionalityReductionFilter.txx
+++ b/Modules/Learning/DimensionalityReductionLearning/include/otbImageDimensionalityReductionFilter.txx
@@ -82,10 +82,6 @@ void
 ImageDimensionalityReductionFilter<TInputImage, TOutputImage, TMaskImage>
 ::BeforeThreadedGenerateData()
 {
-  if (!m_Model)
-    {
-    itkGenericExceptionMacro(<< "No model for classification");
-    }
   if(m_BatchMode)
     {
     #ifdef _OPENMP
@@ -129,7 +125,11 @@ template <class TInputImage, class TOutputImage, class TMaskImage>
 void ImageDimensionalityReductionFilter<TInputImage, TOutputImage, TMaskImage>::GenerateOutputInformation()
 {
   Superclass::GenerateOutputInformation();
-    this->GetOutput()->SetNumberOfComponentsPerPixel( m_Model->GetDimension() );
+  if (!m_Model)
+    {
+    itkGenericExceptionMacro(<< "No model for dimensionality reduction");
+    }
+  this->GetOutput()->SetNumberOfComponentsPerPixel( m_Model->GetDimension() );
 }
 
 template <class TInputImage, class TOutputImage, class TMaskImage>