diff --git a/src/descriptor_identifier/model/ModelClassifier.cpp b/src/descriptor_identifier/model/ModelClassifier.cpp
index 74e75873eb0e830032fd5630d7d9d7bc3c371014..2b6a1459a7a53b0817174ad866d62741bf47c2ca 100644
--- a/src/descriptor_identifier/model/ModelClassifier.cpp
+++ b/src/descriptor_identifier/model/ModelClassifier.cpp
@@ -62,6 +62,8 @@ ModelClassifier::ModelClassifier(
 ModelClassifier::ModelClassifier(const std::string train_file)
 {
     populate_model(train_file);
+    _n_class = _loss->n_class();
+
     int file_train_n_convex_overlap = _train_n_convex_overlap;
     _train_n_convex_overlap = 0;
 
@@ -80,6 +82,8 @@ ModelClassifier::ModelClassifier(const std::string train_file)
 ModelClassifier::ModelClassifier(const std::string train_file, std::string test_file)
 {
     populate_model(train_file, test_file);
+    _n_class = _loss->n_class();
+
     int file_train_n_convex_overlap = _train_n_convex_overlap;
     _train_n_convex_overlap = 0;
 
diff --git a/src/python/py_binding_cpp_def/descriptor_identifier/ModelClassifier.cpp b/src/python/py_binding_cpp_def/descriptor_identifier/ModelClassifier.cpp
index 787ca61d58de69c77fc377d5ae065bccdb25398f..33db3830305b717b4d34cf9d19912e9b86d194e4 100644
--- a/src/python/py_binding_cpp_def/descriptor_identifier/ModelClassifier.cpp
+++ b/src/python/py_binding_cpp_def/descriptor_identifier/ModelClassifier.cpp
@@ -23,6 +23,7 @@
 
 ModelClassifier::ModelClassifier(const ModelClassifier& o, py::list new_coefs, np::ndarray prop_train_est, np::ndarray prop_test_est) :
     Model(o),
+    _n_class(o._n_class),
     _train_n_convex_overlap(o._train_n_convex_overlap),
     _test_n_convex_overlap(o._test_n_convex_overlap)
 {
@@ -31,7 +32,6 @@ ModelClassifier::ModelClassifier(const ModelClassifier& o, py::list new_coefs, n
     {
         _coefs.push_back(python_conv_utils::from_list<double>(coef_list));
     }
-
     std::vector<int> misclassified(_n_samp_train);
     std::transform(
         _loss->prop_train().begin(),
@@ -55,6 +55,7 @@ ModelClassifier::ModelClassifier(const ModelClassifier& o, py::list new_coefs, n
 
 ModelClassifier::ModelClassifier(const ModelClassifier& o, np::ndarray new_coefs, np::ndarray prop_train_est, np::ndarray prop_test_est) :
     Model(o),
+    _n_class(o._n_class),
     _train_n_convex_overlap(o._train_n_convex_overlap),
     _test_n_convex_overlap(o._test_n_convex_overlap)
 {
@@ -63,7 +64,6 @@ ModelClassifier::ModelClassifier(const ModelClassifier& o, np::ndarray new_coefs
     {
         _coefs.push_back(python_conv_utils::from_ndarray<double>(py::extract<np::ndarray>(new_coefs[ii])));
     }
-
     std::vector<int> misclassified(_n_samp_train);
     std::transform(
         _loss->prop_train().begin(),