diff --git a/bob/learn/em/MAP_gmm_trainer.cpp b/bob/learn/em/MAP_gmm_trainer.cpp index 570ed8dd7d57a52c250f7187a09b99ec2469241e..2cac1daac76149755d7089cdbeb2da2a5f831335 100644 --- a/bob/learn/em/MAP_gmm_trainer.cpp +++ b/bob/learn/em/MAP_gmm_trainer.cpp @@ -263,7 +263,7 @@ static PyObject* PyBobLearnEMMAPGMMTrainer_initialize(PyBobLearnEMMAPGMMTrainerO if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnEMGMMMachine_Type, &gmm_machine)){ PyErr_Format(PyExc_RuntimeError, "%s.%s. Was not possible to read :py:class:`bob.learn.em.GMMMachine`", Py_TYPE(self)->tp_name, initialize.name()); - Py_RETURN_NONE; + return 0; } self->cxx->initialize(*gmm_machine->cxx); BOB_CATCH_MEMBER("cannot perform the initialize method", 0) @@ -296,7 +296,7 @@ static PyObject* PyBobLearnEMMAPGMMTrainer_eStep(PyBobLearnEMMAPGMMTrainerObject PyBobLearnEMGMMMachineObject* gmm_machine; PyBlitzArrayObject* data = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnEMGMMMachine_Type, &gmm_machine, - &PyBlitzArray_Converter, &data)) Py_RETURN_NONE; + &PyBlitzArray_Converter, &data)) return 0; auto data_ = make_safe(data); self->cxx->eStep(*gmm_machine->cxx, *PyBlitzArrayCxx_AsBlitz<double,2>(data)); @@ -327,7 +327,7 @@ static PyObject* PyBobLearnEMMAPGMMTrainer_mStep(PyBobLearnEMMAPGMMTrainerObject PyBobLearnEMGMMMachineObject* gmm_machine; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnEMGMMMachine_Type, &gmm_machine)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnEMGMMMachine_Type, &gmm_machine)) return 0; self->cxx->mStep(*gmm_machine->cxx); @@ -353,7 +353,7 @@ static PyObject* PyBobLearnEMMAPGMMTrainer_compute_likelihood(PyBobLearnEMMAPGMM char** kwlist = compute_likelihood.kwlist(0); PyBobLearnEMGMMMachineObject* gmm_machine; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnEMGMMMachine_Type, &gmm_machine)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnEMGMMMachine_Type, &gmm_machine)) return 0; double value = self->cxx->computeLikelihood(*gmm_machine->cxx); return Py_BuildValue("d", value); diff --git a/bob/learn/em/ML_gmm_trainer.cpp b/bob/learn/em/ML_gmm_trainer.cpp index 51d6ce315462fef115b8568051326ef420f953cd..e9d99550c936613971b8a3f5ab754207acb4ef34 100644 --- a/bob/learn/em/ML_gmm_trainer.cpp +++ b/bob/learn/em/ML_gmm_trainer.cpp @@ -168,7 +168,7 @@ static PyObject* PyBobLearnEMMLGMMTrainer_initialize(PyBobLearnEMMLGMMTrainerObj if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnEMGMMMachine_Type, &gmm_machine)){ PyErr_Format(PyExc_RuntimeError, "%s.%s. Was not possible to read :py:class:`bob.learn.em.GMMMachine`", Py_TYPE(self)->tp_name, initialize.name()); - Py_RETURN_NONE; + return 0; } self->cxx->initialize(*gmm_machine->cxx); BOB_CATCH_MEMBER("cannot perform the initialize method", 0) @@ -201,7 +201,7 @@ static PyObject* PyBobLearnEMMLGMMTrainer_eStep(PyBobLearnEMMLGMMTrainerObject* PyBobLearnEMGMMMachineObject* gmm_machine; PyBlitzArrayObject* data = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnEMGMMMachine_Type, &gmm_machine, - &PyBlitzArray_Converter, &data)) Py_RETURN_NONE; + &PyBlitzArray_Converter, &data)) return 0; auto data_ = make_safe(data); self->cxx->eStep(*gmm_machine->cxx, *PyBlitzArrayCxx_AsBlitz<double,2>(data)); @@ -232,7 +232,7 @@ static PyObject* PyBobLearnEMMLGMMTrainer_mStep(PyBobLearnEMMLGMMTrainerObject* PyBobLearnEMGMMMachineObject* gmm_machine; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnEMGMMMachine_Type, &gmm_machine)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnEMGMMMachine_Type, &gmm_machine)) return 0; self->cxx->mStep(*gmm_machine->cxx); @@ -258,7 +258,7 @@ static PyObject* PyBobLearnEMMLGMMTrainer_compute_likelihood(PyBobLearnEMMLGMMTr char** kwlist = compute_likelihood.kwlist(0); PyBobLearnEMGMMMachineObject* gmm_machine; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnEMGMMMachine_Type, &gmm_machine)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnEMGMMMachine_Type, &gmm_machine)) return 0; double value = self->cxx->computeLikelihood(*gmm_machine->cxx); return Py_BuildValue("d", value); diff --git a/bob/learn/em/__ivector_trainer__.py b/bob/learn/em/__ivector_trainer__.py index b31e0ed8c431deccdd8610faaf45cd5252786766..579a1d8b1c282765d0e8f4531440f3af06763983 100644 --- a/bob/learn/em/__ivector_trainer__.py +++ b/bob/learn/em/__ivector_trainer__.py @@ -37,7 +37,7 @@ class IVectorTrainer (_IVectorTrainer): """ #Initialization - self.initialize(ivector_machine, data); + self.initialize(ivector_machine); for i in range(self._max_iterations): #eStep diff --git a/bob/learn/em/empca_trainer.cpp b/bob/learn/em/empca_trainer.cpp index 127a1d78add2e4214b68c0b8e02ae3794863c83c..0a2653b8c622297c444ad01e12a80f84bfd25074 100644 --- a/bob/learn/em/empca_trainer.cpp +++ b/bob/learn/em/empca_trainer.cpp @@ -212,7 +212,7 @@ static PyObject* PyBobLearnEMEMPCATrainer_initialize(PyBobLearnEMEMPCATrainerObj PyBlitzArrayObject* data = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnLinearMachine_Type, &linear_machine, - &PyBlitzArray_Converter, &data)) Py_RETURN_NONE; + &PyBlitzArray_Converter, &data)) return 0; auto data_ = make_safe(data); self->cxx->initialize(*linear_machine->cxx, *PyBlitzArrayCxx_AsBlitz<double,2>(data)); @@ -242,7 +242,7 @@ static PyObject* PyBobLearnEMEMPCATrainer_eStep(PyBobLearnEMEMPCATrainerObject* PyBobLearnLinearMachineObject* linear_machine; PyBlitzArrayObject* data = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnLinearMachine_Type, &linear_machine, - &PyBlitzArray_Converter, &data)) Py_RETURN_NONE; + &PyBlitzArray_Converter, &data)) return 0; auto data_ = make_safe(data); self->cxx->eStep(*linear_machine->cxx, *PyBlitzArrayCxx_AsBlitz<double,2>(data)); @@ -273,7 +273,7 @@ static PyObject* PyBobLearnEMEMPCATrainer_mStep(PyBobLearnEMEMPCATrainerObject* PyBobLearnLinearMachineObject* linear_machine; PyBlitzArrayObject* data = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnLinearMachine_Type, &linear_machine, - &PyBlitzArray_Converter, &data)) Py_RETURN_NONE; + &PyBlitzArray_Converter, &data)) return 0; auto data_ = make_safe(data); self->cxx->mStep(*linear_machine->cxx, *PyBlitzArrayCxx_AsBlitz<double,2>(data)); @@ -301,7 +301,7 @@ static PyObject* PyBobLearnEMEMPCATrainer_compute_likelihood(PyBobLearnEMEMPCATr char** kwlist = compute_likelihood.kwlist(0); PyBobLearnLinearMachineObject* linear_machine; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnLinearMachine_Type, &linear_machine)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnLinearMachine_Type, &linear_machine)) return 0; double value = self->cxx->computeLikelihood(*linear_machine->cxx); return Py_BuildValue("d", value); diff --git a/bob/learn/em/gaussian.cpp b/bob/learn/em/gaussian.cpp index 86f49301c1121e8afcba2983028897924b676a2e..267c656f00334cc88178be173da4d080a35cc787 100644 --- a/bob/learn/em/gaussian.cpp +++ b/bob/learn/em/gaussian.cpp @@ -315,11 +315,11 @@ static PyObject* PyBobLearnEMGaussian_resize(PyBobLearnEMGaussianObject* self, P char** kwlist = resize.kwlist(0); int input = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &input)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &input)) return 0; if (input <= 0){ PyErr_Format(PyExc_TypeError, "input must be greater than zero"); resize.print_usage(); - Py_RETURN_NONE; + return 0; } self->cxx->setNInputs(input); @@ -345,7 +345,7 @@ static PyObject* PyBobLearnEMGaussian_loglikelihood(PyBobLearnEMGaussianObject* PyBlitzArrayObject* input = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBlitzArray_Converter, &input)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBlitzArray_Converter, &input)) return 0; //protects acquired resources through this scope auto input_ = make_safe(input); @@ -369,7 +369,7 @@ static PyObject* PyBobLearnEMGaussian_loglikelihood_(PyBobLearnEMGaussianObject* char** kwlist = log_likelihood_.kwlist(0); PyBlitzArrayObject* input = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBlitzArray_Converter, &input)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBlitzArray_Converter, &input)) return 0; //protects acquired resources through this scope auto input_ = make_safe(input); diff --git a/bob/learn/em/gmm_machine.cpp b/bob/learn/em/gmm_machine.cpp index 8e17e1ea2990ddf98c1746197ceec4a6b92cfa4b..fc27dec08edc6bab49dfaa134864cc3ae9551ad8 100644 --- a/bob/learn/em/gmm_machine.cpp +++ b/bob/learn/em/gmm_machine.cpp @@ -553,7 +553,7 @@ static PyObject* PyBobLearnEMGMMMachine_loglikelihood(PyBobLearnEMGMMMachineObje PyBlitzArrayObject* input = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBlitzArray_Converter, &input)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBlitzArray_Converter, &input)) return 0; //protects acquired resources through this scope auto input_ = make_safe(input); @@ -581,7 +581,7 @@ static PyObject* PyBobLearnEMGMMMachine_loglikelihood_(PyBobLearnEMGMMMachineObj PyBlitzArrayObject* input = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBlitzArray_Converter, &input)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBlitzArray_Converter, &input)) return 0; //protects acquired resources through this scope auto input_ = make_safe(input); @@ -612,11 +612,17 @@ static PyObject* PyBobLearnEMGMMMachine_accStatistics(PyBobLearnEMGMMMachineObje if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O!", kwlist, &PyBlitzArray_Converter,&input, &PyBobLearnEMGMMStats_Type, &stats)) - Py_RETURN_NONE; + return 0; //protects acquired resources through this scope auto input_ = make_safe(input); - self->cxx->accStatistics(*PyBlitzArrayCxx_AsBlitz<double,2>(input), *stats->cxx); + + blitz::Array<double,2> blitz_test = *PyBlitzArrayCxx_AsBlitz<double,2>(input); + if (blitz_test.extent(1)==0) + self->cxx->accStatistics(*PyBlitzArrayCxx_AsBlitz<double,1>(input), *stats->cxx); + else + self->cxx->accStatistics(blitz_test, *stats->cxx); + BOB_CATCH_MEMBER("cannot accumulate the statistics", 0) Py_RETURN_NONE; @@ -641,15 +647,18 @@ static PyObject* PyBobLearnEMGMMMachine_accStatistics_(PyBobLearnEMGMMMachineObj PyBlitzArrayObject* input = 0; PyBobLearnEMGMMStatsObject* stats = 0; - - if(!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O!", kwlist, &PyBlitzArray_Converter,&input, &PyBobLearnEMGMMStats_Type, &stats)) - Py_RETURN_NONE; + return 0; //protects acquired resources through this scope auto input_ = make_safe(input); - self->cxx->accStatistics_(*PyBlitzArrayCxx_AsBlitz<double,2>(input), *stats->cxx); + + blitz::Array<double,2> blitz_test = *PyBlitzArrayCxx_AsBlitz<double,2>(input); + if (blitz_test.extent(1)==0) + self->cxx->accStatistics_(*PyBlitzArrayCxx_AsBlitz<double,1>(input), *stats->cxx); + else + self->cxx->accStatistics_(blitz_test, *stats->cxx); BOB_CATCH_MEMBER("cannot accumulate the statistics", 0) Py_RETURN_NONE; @@ -685,7 +694,6 @@ static PyObject* PyBobLearnEMGMMMachine_setVarianceThresholds_method(PyBobLearnE return 0; - BOB_CATCH_MEMBER("cannot accumulate set the variance threshold", 0) Py_RETURN_NONE; } @@ -710,7 +718,7 @@ static PyObject* PyBobLearnEMGMMMachine_get_gaussian(PyBobLearnEMGMMMachineObjec int i = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) return 0; boost::shared_ptr<bob::learn::em::Gaussian> gaussian = self->cxx->getGaussian(i); diff --git a/bob/learn/em/gmm_stats.cpp b/bob/learn/em/gmm_stats.cpp index a02a3876de987af09d3891e9a4df284bbc2efb33..b6afe2d5a0f7538a75c46e7d6262654e60abab92 100644 --- a/bob/learn/em/gmm_stats.cpp +++ b/bob/learn/em/gmm_stats.cpp @@ -482,7 +482,7 @@ static PyObject* PyBobLearnEMGMMStats_resize(PyBobLearnEMGMMStatsObject* self, P int n_gaussians = 0; int n_inputs = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii", kwlist, &n_gaussians, &n_inputs)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii", kwlist, &n_gaussians, &n_inputs)) return 0; if (n_gaussians <= 0){ PyErr_Format(PyExc_TypeError, "n_gaussians must be greater than zero"); diff --git a/bob/learn/em/isv_base.cpp b/bob/learn/em/isv_base.cpp index 6ff95102ad3db925e34709aeec6ba830db45c8ca..185463bede107b53ba368372b84dce8df00fe3eb 100644 --- a/bob/learn/em/isv_base.cpp +++ b/bob/learn/em/isv_base.cpp @@ -442,7 +442,7 @@ static PyObject* PyBobLearnEMISVBase_resize(PyBobLearnEMISVBaseObject* self, PyO int rU = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &rU)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &rU)) return 0; if (rU <= 0){ PyErr_Format(PyExc_TypeError, "rU must be greater than zero"); diff --git a/bob/learn/em/isv_machine.cpp b/bob/learn/em/isv_machine.cpp index a7772c30818ed79a258ed41d1f483294e7b285c8..bd74344d6fd25b227939edf864e8fbd30d783f6f 100644 --- a/bob/learn/em/isv_machine.cpp +++ b/bob/learn/em/isv_machine.cpp @@ -420,7 +420,7 @@ static PyObject* PyBobLearnEMISVMachine_estimateX(PyBobLearnEMISVMachineObject* if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnEMGMMStats_Type, &stats, &PyBlitzArray_Converter,&input)) - Py_RETURN_NONE; + return 0; //protects acquired resources through this scope auto input_ = make_safe(input); @@ -451,7 +451,7 @@ static PyObject* PyBobLearnEMISVMachine_estimateUx(PyBobLearnEMISVMachineObject* if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnEMGMMStats_Type, &stats, &PyBlitzArray_Converter,&input)) - Py_RETURN_NONE; + return 0; //protects acquired resources through this scope auto input_ = make_safe(input); @@ -482,7 +482,7 @@ static PyObject* PyBobLearnEMISVMachine_ForwardUx(PyBobLearnEMISVMachineObject* if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnEMGMMStats_Type, &stats, &PyBlitzArray_Converter,&ux_input)) - Py_RETURN_NONE; + return 0; //protects acquired resources through this scope auto ux_input_ = make_safe(ux_input); @@ -510,7 +510,7 @@ static PyObject* PyBobLearnEMISVMachine_Forward(PyBobLearnEMISVMachineObject* se PyBobLearnEMGMMStatsObject* stats = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnEMGMMStats_Type, &stats)) - Py_RETURN_NONE; + return 0; //protects acquired resources through this scope double score = self->cxx->forward(*stats->cxx); diff --git a/bob/learn/em/isv_trainer.cpp b/bob/learn/em/isv_trainer.cpp index fd4d201db7e438f62e2d82388627aebd10d71492..44f294b65b7bce799fcb885af231efe79fc97049 100644 --- a/bob/learn/em/isv_trainer.cpp +++ b/bob/learn/em/isv_trainer.cpp @@ -391,7 +391,7 @@ static PyObject* PyBobLearnEMISVTrainer_initialize(PyBobLearnEMISVTrainerObject* PyObject* stats = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnEMISVBase_Type, &isv_base, - &PyList_Type, &stats)) Py_RETURN_NONE; + &PyList_Type, &stats)) return 0; std::vector<std::vector<boost::shared_ptr<bob::learn::em::GMMStats> > > training_data; if(extract_GMMStats_2d(stats ,training_data)==0) @@ -405,7 +405,7 @@ static PyObject* PyBobLearnEMISVTrainer_initialize(PyBobLearnEMISVTrainerObject* /*** e_step ***/ static auto e_step = bob::extension::FunctionDoc( - "e_step", + "eStep", "Call the e-step procedure (for the U subspace).", "", true @@ -423,7 +423,7 @@ static PyObject* PyBobLearnEMISVTrainer_e_step(PyBobLearnEMISVTrainerObject* sel PyObject* stats = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnEMISVBase_Type, &isv_base, - &PyList_Type, &stats)) Py_RETURN_NONE; + &PyList_Type, &stats)) return 0; std::vector<std::vector<boost::shared_ptr<bob::learn::em::GMMStats> > > training_data; if(extract_GMMStats_2d(stats ,training_data)==0) @@ -437,7 +437,7 @@ static PyObject* PyBobLearnEMISVTrainer_e_step(PyBobLearnEMISVTrainerObject* sel /*** m_step ***/ static auto m_step = bob::extension::FunctionDoc( - "m_step", + "mStep", "Call the m-step procedure (for the U subspace).", "", true @@ -486,7 +486,7 @@ static PyObject* PyBobLearnEMISVTrainer_enrol(PyBobLearnEMISVTrainerObject* self if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!i", kwlist, &PyBobLearnEMISVMachine_Type, &isv_machine, - &PyList_Type, &stats, &n_iter)) Py_RETURN_NONE; + &PyList_Type, &stats, &n_iter)) return 0; std::vector<boost::shared_ptr<bob::learn::em::GMMStats> > training_data; if(extract_GMMStats_1d(stats ,training_data)==0) diff --git a/bob/learn/em/ivector_machine.cpp b/bob/learn/em/ivector_machine.cpp index 504ab1510ca23db398937eb80ad935f95726f4c2..607a449dc4fd613b01e0d8497d7f7651a0a1807e 100644 --- a/bob/learn/em/ivector_machine.cpp +++ b/bob/learn/em/ivector_machine.cpp @@ -484,7 +484,7 @@ static PyObject* PyBobLearnEMIVectorMachine_Forward(PyBobLearnEMIVectorMachineOb PyBobLearnEMGMMStatsObject* stats = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnEMGMMStats_Type, &stats)) - Py_RETURN_NONE; + return 0; blitz::Array<double,1> ivector(self->cxx->getDimRt()); self->cxx->forward(*stats->cxx, ivector); @@ -512,7 +512,7 @@ static PyObject* PyBobLearnEMIVectorMachine_resize(PyBobLearnEMIVectorMachineObj int rT = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &rT)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &rT)) return 0; if (rT < 1){ PyErr_Format(PyExc_TypeError, "rU must be greater than one"); @@ -545,7 +545,7 @@ static PyObject* PyBobLearnEMIVectorMachine_compute_Id_TtSigmaInvT__(PyBobLearnE PyBobLearnEMGMMStatsObject* stats = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnEMGMMStats_Type, &stats)) - Py_RETURN_NONE; + return 0; blitz::Array<double,2> output(self->cxx->getDimRt(), self->cxx->getDimRt()); @@ -574,7 +574,7 @@ static PyObject* PyBobLearnEMIVectorMachine_compute_TtSigmaInvFnorm__(PyBobLearn PyBobLearnEMGMMStatsObject* stats = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnEMGMMStats_Type, &stats)) - Py_RETURN_NONE; + return 0; blitz::Array<double,1> output(self->cxx->getDimRt()); diff --git a/bob/learn/em/ivector_trainer.cpp b/bob/learn/em/ivector_trainer.cpp index da2773eefc8e33abba6392c2c7a888da8f9fa773..72bced8c369da9ed83678c799f973baa3496d8ed 100644 --- a/bob/learn/em/ivector_trainer.cpp +++ b/bob/learn/em/ivector_trainer.cpp @@ -323,7 +323,7 @@ static PyObject* PyBobLearnEMIVectorTrainer_initialize(PyBobLearnEMIVectorTraine PyBobLearnEMIVectorMachineObject* ivector_machine = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnEMIVectorMachine_Type, &ivector_machine)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnEMIVectorMachine_Type, &ivector_machine)) return 0; self->cxx->initialize(*ivector_machine->cxx); @@ -335,7 +335,7 @@ static PyObject* PyBobLearnEMIVectorTrainer_initialize(PyBobLearnEMIVectorTraine /*** e_step ***/ static auto e_step = bob::extension::FunctionDoc( - "e_step", + "eStep", "Call the e-step procedure (for the U subspace).", "", true @@ -353,7 +353,7 @@ static PyObject* PyBobLearnEMIVectorTrainer_e_step(PyBobLearnEMIVectorTrainerObj PyObject* stats = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnEMIVectorMachine_Type, &ivector_machine, - &PyList_Type, &stats)) Py_RETURN_NONE; + &PyList_Type, &stats)) return 0; std::vector<bob::learn::em::GMMStats> training_data; if(extract_GMMStats_1d(stats ,training_data)==0) @@ -366,7 +366,7 @@ static PyObject* PyBobLearnEMIVectorTrainer_e_step(PyBobLearnEMIVectorTrainerObj /*** m_step ***/ static auto m_step = bob::extension::FunctionDoc( - "m_step", + "mStep", "Call the m-step procedure (for the U subspace).", "", true @@ -381,7 +381,7 @@ static PyObject* PyBobLearnEMIVectorTrainer_m_step(PyBobLearnEMIVectorTrainerObj PyBobLearnEMIVectorMachineObject* ivector_machine = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnEMIVectorMachine_Type, &ivector_machine)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnEMIVectorMachine_Type, &ivector_machine)) return 0; self->cxx->mStep(*ivector_machine->cxx); diff --git a/bob/learn/em/jfa_base.cpp b/bob/learn/em/jfa_base.cpp index 54eaa78230e5420dc9e253edfc19d12b7deb95c0..d4fd23b3141ff05b8f846110c1cf87f442da8a91 100644 --- a/bob/learn/em/jfa_base.cpp +++ b/bob/learn/em/jfa_base.cpp @@ -488,7 +488,7 @@ static PyObject* PyBobLearnEMJFABase_resize(PyBobLearnEMJFABaseObject* self, PyO int rU = 0; int rV = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii", kwlist, &rU, &rV)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii", kwlist, &rU, &rV)) return 0; if (rU <= 0){ PyErr_Format(PyExc_TypeError, "rU must be greater than zero"); diff --git a/bob/learn/em/jfa_machine.cpp b/bob/learn/em/jfa_machine.cpp index 48ffe3a9a44e58e73db6c95d635cb0caade0cafc..2567a956beed58b1699ad6215cec92444d93343f 100644 --- a/bob/learn/em/jfa_machine.cpp +++ b/bob/learn/em/jfa_machine.cpp @@ -457,7 +457,7 @@ static PyObject* PyBobLearnEMJFAMachine_estimateX(PyBobLearnEMJFAMachineObject* if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnEMGMMStats_Type, &stats, &PyBlitzArray_Converter,&input)) - Py_RETURN_NONE; + return 0; //protects acquired resources through this scope auto input_ = make_safe(input); @@ -488,7 +488,7 @@ static PyObject* PyBobLearnEMJFAMachine_estimateUx(PyBobLearnEMJFAMachineObject* if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnEMGMMStats_Type, &stats, &PyBlitzArray_Converter,&input)) - Py_RETURN_NONE; + return 0; //protects acquired resources through this scope auto input_ = make_safe(input); @@ -519,7 +519,7 @@ static PyObject* PyBobLearnEMJFAMachine_ForwardUx(PyBobLearnEMJFAMachineObject* if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnEMGMMStats_Type, &stats, &PyBlitzArray_Converter,&ux_input)) - Py_RETURN_NONE; + return 0; //protects acquired resources through this scope auto ux_input_ = make_safe(ux_input); @@ -548,7 +548,7 @@ static PyObject* PyBobLearnEMJFAMachine_Forward(PyBobLearnEMJFAMachineObject* se PyBobLearnEMGMMStatsObject* stats = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnEMGMMStats_Type, &stats)) - Py_RETURN_NONE; + return 0; //protects acquired resources through this scope double score = self->cxx->forward(*stats->cxx); diff --git a/bob/learn/em/jfa_trainer.cpp b/bob/learn/em/jfa_trainer.cpp index ffe4147908341613d1ff52bb19de64233e96fdd7..edcc8ecfe58dcfa934d1b8078c94969fef5a8a78 100644 --- a/bob/learn/em/jfa_trainer.cpp +++ b/bob/learn/em/jfa_trainer.cpp @@ -567,7 +567,7 @@ static PyObject* PyBobLearnEMJFATrainer_initialize(PyBobLearnEMJFATrainerObject* PyObject* stats = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnEMJFABase_Type, &jfa_base, - &PyList_Type, &stats)) Py_RETURN_NONE; + &PyList_Type, &stats)) return 0; std::vector<std::vector<boost::shared_ptr<bob::learn::em::GMMStats> > > training_data; if(extract_GMMStats_2d(stats ,training_data)==0) @@ -599,7 +599,7 @@ static PyObject* PyBobLearnEMJFATrainer_e_step1(PyBobLearnEMJFATrainerObject* se PyObject* stats = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnEMJFABase_Type, &jfa_base, - &PyList_Type, &stats)) Py_RETURN_NONE; + &PyList_Type, &stats)) return 0; std::vector<std::vector<boost::shared_ptr<bob::learn::em::GMMStats> > > training_data; if(extract_GMMStats_2d(stats ,training_data)==0) @@ -632,7 +632,7 @@ static PyObject* PyBobLearnEMJFATrainer_m_step1(PyBobLearnEMJFATrainerObject* se PyObject* stats = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnEMJFABase_Type, &jfa_base, - &PyList_Type, &stats)) Py_RETURN_NONE; + &PyList_Type, &stats)) return 0; std::vector<std::vector<boost::shared_ptr<bob::learn::em::GMMStats> > > training_data; if(extract_GMMStats_2d(stats ,training_data)==0) @@ -664,7 +664,7 @@ static PyObject* PyBobLearnEMJFATrainer_finalize1(PyBobLearnEMJFATrainerObject* PyObject* stats = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnEMJFABase_Type, &jfa_base, - &PyList_Type, &stats)) Py_RETURN_NONE; + &PyList_Type, &stats)) return 0; std::vector<std::vector<boost::shared_ptr<bob::learn::em::GMMStats> > > training_data; if(extract_GMMStats_2d(stats ,training_data)==0) @@ -696,7 +696,7 @@ static PyObject* PyBobLearnEMJFATrainer_e_step2(PyBobLearnEMJFATrainerObject* se PyObject* stats = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnEMJFABase_Type, &jfa_base, - &PyList_Type, &stats)) Py_RETURN_NONE; + &PyList_Type, &stats)) return 0; std::vector<std::vector<boost::shared_ptr<bob::learn::em::GMMStats> > > training_data; if(extract_GMMStats_2d(stats ,training_data)==0) @@ -728,7 +728,7 @@ static PyObject* PyBobLearnEMJFATrainer_m_step2(PyBobLearnEMJFATrainerObject* se PyObject* stats = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnEMJFABase_Type, &jfa_base, - &PyList_Type, &stats)) Py_RETURN_NONE; + &PyList_Type, &stats)) return 0; std::vector<std::vector<boost::shared_ptr<bob::learn::em::GMMStats> > > training_data; if(extract_GMMStats_2d(stats ,training_data)==0) @@ -760,7 +760,7 @@ static PyObject* PyBobLearnEMJFATrainer_finalize2(PyBobLearnEMJFATrainerObject* PyObject* stats = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnEMJFABase_Type, &jfa_base, - &PyList_Type, &stats)) Py_RETURN_NONE; + &PyList_Type, &stats)) return 0; std::vector<std::vector<boost::shared_ptr<bob::learn::em::GMMStats> > > training_data; if(extract_GMMStats_2d(stats ,training_data)==0) @@ -792,7 +792,7 @@ static PyObject* PyBobLearnEMJFATrainer_e_step3(PyBobLearnEMJFATrainerObject* se PyObject* stats = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnEMJFABase_Type, &jfa_base, - &PyList_Type, &stats)) Py_RETURN_NONE; + &PyList_Type, &stats)) return 0; std::vector<std::vector<boost::shared_ptr<bob::learn::em::GMMStats> > > training_data; if(extract_GMMStats_2d(stats ,training_data)==0) @@ -824,7 +824,7 @@ static PyObject* PyBobLearnEMJFATrainer_m_step3(PyBobLearnEMJFATrainerObject* se PyObject* stats = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnEMJFABase_Type, &jfa_base, - &PyList_Type, &stats)) Py_RETURN_NONE; + &PyList_Type, &stats)) return 0; std::vector<std::vector<boost::shared_ptr<bob::learn::em::GMMStats> > > training_data; if(extract_GMMStats_2d(stats ,training_data)==0) @@ -856,7 +856,7 @@ static PyObject* PyBobLearnEMJFATrainer_finalize3(PyBobLearnEMJFATrainerObject* PyObject* stats = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnEMJFABase_Type, &jfa_base, - &PyList_Type, &stats)) Py_RETURN_NONE; + &PyList_Type, &stats)) return 0; std::vector<std::vector<boost::shared_ptr<bob::learn::em::GMMStats> > > training_data; if(extract_GMMStats_2d(stats ,training_data)==0) @@ -891,7 +891,7 @@ static PyObject* PyBobLearnEMJFATrainer_enrol(PyBobLearnEMJFATrainerObject* self if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!i", kwlist, &PyBobLearnEMJFAMachine_Type, &jfa_machine, - &PyList_Type, &stats, &n_iter)) Py_RETURN_NONE; + &PyList_Type, &stats, &n_iter)) return 0; std::vector<boost::shared_ptr<bob::learn::em::GMMStats> > training_data; if(extract_GMMStats_1d(stats ,training_data)==0) diff --git a/bob/learn/em/kmeans_machine.cpp b/bob/learn/em/kmeans_machine.cpp index 0fc4de7cb3ab4e64fd73bbf52d2ffcf9f5bad4b3..8f3f55f5ccc91b2b3840d387af4122808b4a86ad 100644 --- a/bob/learn/em/kmeans_machine.cpp +++ b/bob/learn/em/kmeans_machine.cpp @@ -339,7 +339,7 @@ static PyObject* PyBobLearnEMKMeansMachine_resize(PyBobLearnEMKMeansMachineObjec int n_means = 0; int n_inputs = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii", kwlist, &n_means, &n_inputs)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii", kwlist, &n_means, &n_inputs)) return 0; if (n_means <= 0){ PyErr_Format(PyExc_TypeError, "n_means must be greater than zero"); @@ -375,7 +375,7 @@ static PyObject* PyBobLearnEMKMeansMachine_get_mean(PyBobLearnEMKMeansMachineObj char** kwlist = get_mean.kwlist(0); int i = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) return 0; return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getMean(i)); @@ -400,7 +400,7 @@ static PyObject* PyBobLearnEMKMeansMachine_set_mean(PyBobLearnEMKMeansMachineObj int i = 0; PyBlitzArrayObject* mean = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "iO&", kwlist, &i, &PyBlitzArray_Converter, &mean)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "iO&", kwlist, &i, &PyBlitzArray_Converter, &mean)) return 0; //protects acquired resources through this scope auto mean_ = make_safe(mean); @@ -434,7 +434,7 @@ static PyObject* PyBobLearnEMKMeansMachine_get_distance_from_mean(PyBobLearnEMKM PyBlitzArrayObject* input = 0; int i = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&i", kwlist, &PyBlitzArray_Converter, &input, &i)){ - Py_RETURN_NONE; + return 0; } //protects acquired resources through this scope @@ -463,7 +463,7 @@ static PyObject* PyBobLearnEMKMeansMachine_get_closest_mean(PyBobLearnEMKMeansMa char** kwlist = get_closest_mean.kwlist(0); PyBlitzArrayObject* input = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBlitzArray_Converter, &input)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBlitzArray_Converter, &input)) return 0; //protects acquired resources through this scope auto input_ = make_safe(input); @@ -494,7 +494,7 @@ static PyObject* PyBobLearnEMKMeansMachine_get_min_distance(PyBobLearnEMKMeansMa char** kwlist = get_min_distance.kwlist(0); PyBlitzArrayObject* input = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBlitzArray_Converter, &input)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBlitzArray_Converter, &input)) return 0; //protects acquired resources through this scope auto input_ = make_safe(input); @@ -525,7 +525,7 @@ static PyObject* PyBobLearnEMKMeansMachine_get_variances_and_weights_for_each_cl char** kwlist = get_variances_and_weights_for_each_cluster.kwlist(0); PyBlitzArrayObject* input = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBlitzArray_Converter, &input)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBlitzArray_Converter, &input)) return 0; //protects acquired resources through this scope auto input_ = make_safe(input); @@ -562,7 +562,7 @@ static PyObject* PyBobLearnEMKMeansMachine_get_variances_and_weights_for_each_cl PyBlitzArrayObject* variances = 0; PyBlitzArrayObject* weights = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&", kwlist, &PyBlitzArray_Converter, &variances, &PyBlitzArray_Converter, &weights)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&", kwlist, &PyBlitzArray_Converter, &variances, &PyBlitzArray_Converter, &weights)) return 0; //protects acquired resources through this scope auto weights_ = make_safe(weights); @@ -598,7 +598,7 @@ static PyObject* PyBobLearnEMKMeansMachine_get_variances_and_weights_for_each_cl PyBlitzArrayObject* data = 0; PyBlitzArrayObject* variances = 0; PyBlitzArrayObject* weights = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&O&", kwlist, &PyBlitzArray_Converter, &data, &PyBlitzArray_Converter, &variances, &PyBlitzArray_Converter, &weights)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&O&", kwlist, &PyBlitzArray_Converter, &data, &PyBlitzArray_Converter, &variances, &PyBlitzArray_Converter, &weights)) return 0; //protects acquired resources through this scope auto data_ = make_safe(data); @@ -633,7 +633,7 @@ static PyObject* PyBobLearnEMKMeansMachine_get_variances_and_weights_for_each_cl PyBlitzArrayObject* variances = 0; PyBlitzArrayObject* weights = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&", kwlist, &PyBlitzArray_Converter, &variances, &PyBlitzArray_Converter, &weights)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&", kwlist, &PyBlitzArray_Converter, &variances, &PyBlitzArray_Converter, &weights)) return 0; //protects acquired resources through this scope auto weights_ = make_safe(weights); diff --git a/bob/learn/em/kmeans_trainer.cpp b/bob/learn/em/kmeans_trainer.cpp index a65637f59e0d442b79dbcae6d36af2395078b03f..d80339c3d048e56368183e12386a2718d9ae59ba 100644 --- a/bob/learn/em/kmeans_trainer.cpp +++ b/bob/learn/em/kmeans_trainer.cpp @@ -360,7 +360,7 @@ static PyObject* PyBobLearnEMKMeansTrainer_initialize(PyBobLearnEMKMeansTrainerO PyBlitzArrayObject* data = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnEMKMeansMachine_Type, &kmeans_machine, - &PyBlitzArray_Converter, &data)) Py_RETURN_NONE; + &PyBlitzArray_Converter, &data)) return 0; auto data_ = make_safe(data); self->cxx->initialize(*kmeans_machine->cxx, *PyBlitzArrayCxx_AsBlitz<double,2>(data)); @@ -392,7 +392,7 @@ static PyObject* PyBobLearnEMKMeansTrainer_eStep(PyBobLearnEMKMeansTrainerObject PyBobLearnEMKMeansMachineObject* kmeans_machine; PyBlitzArrayObject* data = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnEMKMeansMachine_Type, &kmeans_machine, - &PyBlitzArray_Converter, &data)) Py_RETURN_NONE; + &PyBlitzArray_Converter, &data)) return 0; auto data_ = make_safe(data); self->cxx->eStep(*kmeans_machine->cxx, *PyBlitzArrayCxx_AsBlitz<double,2>(data)); @@ -420,7 +420,7 @@ static PyObject* PyBobLearnEMKMeansTrainer_mStep(PyBobLearnEMKMeansTrainerObject char** kwlist = mStep.kwlist(0); PyBobLearnEMKMeansMachineObject* kmeans_machine; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnEMKMeansMachine_Type, &kmeans_machine)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnEMKMeansMachine_Type, &kmeans_machine)) return 0; self->cxx->mStep(*kmeans_machine->cxx); @@ -446,7 +446,7 @@ static PyObject* PyBobLearnEMKMeansTrainer_compute_likelihood(PyBobLearnEMKMeans char** kwlist = compute_likelihood.kwlist(0); PyBobLearnEMKMeansMachineObject* kmeans_machine; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnEMKMeansMachine_Type, &kmeans_machine)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnEMKMeansMachine_Type, &kmeans_machine)) return 0; double value = self->cxx->computeLikelihood(*kmeans_machine->cxx); return Py_BuildValue("d", value); @@ -471,7 +471,7 @@ static PyObject* PyBobLearnEMKMeansTrainer_reset_accumulators(PyBobLearnEMKMeans char** kwlist = reset_accumulators.kwlist(0); PyBobLearnEMKMeansMachineObject* kmeans_machine; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnEMKMeansMachine_Type, &kmeans_machine)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnEMKMeansMachine_Type, &kmeans_machine)) return 0; bool value = self->cxx->resetAccumulators(*kmeans_machine->cxx); return Py_BuildValue("b", value); diff --git a/bob/learn/em/linear_scoring.cpp b/bob/learn/em/linear_scoring.cpp index ab5edd6252f1470ddfe26cec4e578528ff0748c4..e2cc215e8f97046d032f97204c485e054f15e8a3 100644 --- a/bob/learn/em/linear_scoring.cpp +++ b/bob/learn/em/linear_scoring.cpp @@ -148,7 +148,7 @@ static PyObject* PyBobLearnEM_linear_scoring(PyObject*, PyObject* args, PyObject &PyList_Type, &channel_offset_list_o, &PyBool_Type, &frame_length_normalisation)){ linear_scoring1.print_usage(); - Py_RETURN_NONE; + return 0; } std::vector<boost::shared_ptr<const bob::learn::em::GMMStats> > stats_list; @@ -191,7 +191,7 @@ static PyObject* PyBobLearnEM_linear_scoring(PyObject*, PyObject* args, PyObject &PyList_Type, &channel_offset_list_o, &PyBool_Type, &frame_length_normalisation)){ linear_scoring2.print_usage(); - Py_RETURN_NONE; + return 0; } //protects acquired resources through this scope @@ -239,7 +239,7 @@ static PyObject* PyBobLearnEM_linear_scoring(PyObject*, PyObject* args, PyObject &PyBlitzArray_Converter, &channel_offset, &PyBool_Type, &frame_length_normalisation)){ linear_scoring3.print_usage(); - Py_RETURN_NONE; + return 0; } //protects acquired resources through this scope @@ -259,7 +259,7 @@ static PyObject* PyBobLearnEM_linear_scoring(PyObject*, PyObject* args, PyObject linear_scoring1.print_usage(); linear_scoring2.print_usage(); linear_scoring3.print_usage(); - Py_RETURN_NONE; + return 0; } } diff --git a/bob/learn/em/plda_base.cpp b/bob/learn/em/plda_base.cpp index 2c7bafbb465534d843e897d2d2594e8181940cb5..5d48a169bb18ac4b462d3a625110c4ab8080e5a9 100644 --- a/bob/learn/em/plda_base.cpp +++ b/bob/learn/em/plda_base.cpp @@ -642,7 +642,7 @@ static PyObject* PyBobLearnEMPLDABase_resize(PyBobLearnEMPLDABaseObject* self, P int dim_D, dim_F, dim_G = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "iii", kwlist, &dim_D, &dim_F, &dim_G)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "iii", kwlist, &dim_D, &dim_F, &dim_G)) return 0; if(dim_D <= 0){ PyErr_Format(PyExc_TypeError, "dim_d argument must be greater than or equal to one"); @@ -684,7 +684,7 @@ static PyObject* PyBobLearnEMPLDABase_getGamma(PyBobLearnEMPLDABaseObject* self, char** kwlist = get_gamma.kwlist(0); int i = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) return 0; return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getGamma(i)); BOB_CATCH_MEMBER("`get_gamma` could not be read", 0) @@ -707,7 +707,7 @@ static PyObject* PyBobLearnEMPLDABase_hasGamma(PyBobLearnEMPLDABaseObject* self, char** kwlist = has_gamma.kwlist(0); int i = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) return 0; if(self->cxx->hasGamma(i)) Py_RETURN_TRUE; @@ -734,7 +734,7 @@ static PyObject* PyBobLearnEMPLDABase_computeGamma(PyBobLearnEMPLDABaseObject* s char** kwlist = compute_gamma.kwlist(0); int i = 0; PyBlitzArrayObject* res = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "iO&", kwlist, &i, &PyBlitzArray_Converter, &res)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "iO&", kwlist, &i, &PyBlitzArray_Converter, &res)) return 0; auto res_ = make_safe(res); @@ -761,7 +761,7 @@ static PyObject* PyBobLearnEMPLDABase_getAddGamma(PyBobLearnEMPLDABaseObject* se char** kwlist = get_add_gamma.kwlist(0); int i = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) return 0; return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getAddGamma(i)); BOB_CATCH_MEMBER("`get_add_gamma` could not be read", 0) @@ -784,7 +784,7 @@ static PyObject* PyBobLearnEMPLDABase_hasLogLikeConstTerm(PyBobLearnEMPLDABaseOb char** kwlist = has_log_like_const_term.kwlist(0); int i = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) return 0; if(self->cxx->hasLogLikeConstTerm(i)) Py_RETURN_TRUE; @@ -812,7 +812,7 @@ static PyObject* PyBobLearnEMPLDABase_computeLogLikeConstTerm(PyBobLearnEMPLDABa char** kwlist = compute_log_like_const_term.kwlist(0); int i = 0; PyBlitzArrayObject* res = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "iO&", kwlist, &i, &PyBlitzArray_Converter, &res)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "iO&", kwlist, &i, &PyBlitzArray_Converter, &res)) return 0; auto res_ = make_safe(res); @@ -839,7 +839,7 @@ static PyObject* PyBobLearnEMPLDABase_getAddLogLikeConstTerm(PyBobLearnEMPLDABas char** kwlist = get_add_log_like_const_term.kwlist(0); int i = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) return 0; return Py_BuildValue("d",self->cxx->getAddLogLikeConstTerm(i)); @@ -863,7 +863,7 @@ static PyObject* PyBobLearnEMPLDABase_getLogLikeConstTerm(PyBobLearnEMPLDABaseOb char** kwlist = get_log_like_const_term.kwlist(0); int i = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) return 0; return Py_BuildValue("d",self->cxx->getLogLikeConstTerm(i)); diff --git a/bob/learn/em/plda_machine.cpp b/bob/learn/em/plda_machine.cpp index dc14d35d0d22fa8d0cbee4c358536800ee98393f..79859c2a7af9caf45fc1796d4c27450b05304756 100644 --- a/bob/learn/em/plda_machine.cpp +++ b/bob/learn/em/plda_machine.cpp @@ -477,7 +477,7 @@ static PyObject* PyBobLearnEMPLDAMachine_getGamma(PyBobLearnEMPLDAMachineObject* char** kwlist = get_gamma.kwlist(0); int i = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) return 0; return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getGamma(i)); BOB_CATCH_MEMBER("`get_gamma` could not be read", 0) @@ -500,7 +500,7 @@ static PyObject* PyBobLearnEMPLDAMachine_hasGamma(PyBobLearnEMPLDAMachineObject* char** kwlist = has_gamma.kwlist(0); int i = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) return 0; if(self->cxx->hasGamma(i)) Py_RETURN_TRUE; @@ -528,7 +528,7 @@ static PyObject* PyBobLearnEMPLDAMachine_getAddGamma(PyBobLearnEMPLDAMachineObje char** kwlist = get_add_gamma.kwlist(0); int i = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) return 0; return PyBlitzArrayCxx_AsConstNumpy(self->cxx->getAddGamma(i)); BOB_CATCH_MEMBER("`get_add_gamma` could not be read", 0) @@ -551,7 +551,7 @@ static PyObject* PyBobLearnEMPLDAMachine_hasLogLikeConstTerm(PyBobLearnEMPLDAMac char** kwlist = has_log_like_const_term.kwlist(0); int i = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) return 0; if(self->cxx->hasLogLikeConstTerm(i)) Py_RETURN_TRUE; @@ -578,7 +578,7 @@ static PyObject* PyBobLearnEMPLDAMachine_getAddLogLikeConstTerm(PyBobLearnEMPLDA char** kwlist = get_add_log_like_const_term.kwlist(0); int i = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) return 0; return Py_BuildValue("d",self->cxx->getAddLogLikeConstTerm(i)); @@ -602,7 +602,7 @@ static PyObject* PyBobLearnEMPLDAMachine_getLogLikeConstTerm(PyBobLearnEMPLDAMac char** kwlist = get_log_like_const_term.kwlist(0); int i = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i", kwlist, &i)) return 0; return Py_BuildValue("d",self->cxx->getLogLikeConstTerm(i)); @@ -647,7 +647,7 @@ static PyObject* PyBobLearnEMPLDAMachine_computeLogLikelihood(PyBobLearnEMPLDAMa PyObject* with_enrolled_samples = Py_True; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|O!", kwlist, &PyBlitzArray_Converter, &samples, - &PyBool_Type, &with_enrolled_samples)) Py_RETURN_NONE; + &PyBool_Type, &with_enrolled_samples)) return 0; auto samples_ = make_safe(samples); blitz::Array<double,2> blitz_test = *PyBlitzArrayCxx_AsBlitz<double,2>(samples); @@ -679,7 +679,7 @@ static PyObject* PyBobLearnEMPLDAMachine_forward(PyBobLearnEMPLDAMachineObject* PyBlitzArrayObject* samples; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBlitzArray_Converter, &samples)) Py_RETURN_NONE; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBlitzArray_Converter, &samples)) return 0; auto samples_ = make_safe(samples); blitz::Array<double,2> blitz_test = *PyBlitzArrayCxx_AsBlitz<double,2>(samples); diff --git a/bob/learn/em/plda_trainer.cpp b/bob/learn/em/plda_trainer.cpp index 3144fbccce27f979050e5c3347d0782d9873814a..70e09f3dc91816f30405072374ad421c7b7196ec 100644 --- a/bob/learn/em/plda_trainer.cpp +++ b/bob/learn/em/plda_trainer.cpp @@ -445,7 +445,7 @@ static PyObject* PyBobLearnEMPLDATrainer_initialize(PyBobLearnEMPLDATrainerObjec PyObject* data = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnEMPLDABase_Type, &plda_base, - &PyList_Type, &data)) Py_RETURN_NONE; + &PyList_Type, &data)) return 0; std::vector<blitz::Array<double,2> > data_vector; if(list_as_vector(data ,data_vector)==0) @@ -477,7 +477,7 @@ static PyObject* PyBobLearnEMPLDATrainer_e_step(PyBobLearnEMPLDATrainerObject* s PyObject* data = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnEMPLDABase_Type, &plda_base, - &PyList_Type, &data)) Py_RETURN_NONE; + &PyList_Type, &data)) return 0; std::vector<blitz::Array<double,2> > data_vector; if(list_as_vector(data ,data_vector)==0) @@ -509,7 +509,7 @@ static PyObject* PyBobLearnEMPLDATrainer_m_step(PyBobLearnEMPLDATrainerObject* s PyObject* data = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnEMPLDABase_Type, &plda_base, - &PyList_Type, &data)) Py_RETURN_NONE; + &PyList_Type, &data)) return 0; std::vector<blitz::Array<double,2> > data_vector; if(list_as_vector(data ,data_vector)==0) @@ -541,7 +541,7 @@ static PyObject* PyBobLearnEMPLDATrainer_finalize(PyBobLearnEMPLDATrainerObject* PyObject* data = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!", kwlist, &PyBobLearnEMPLDABase_Type, &plda_base, - &PyList_Type, &data)) Py_RETURN_NONE; + &PyList_Type, &data)) return 0; std::vector<blitz::Array<double,2> > data_vector; if(list_as_vector(data ,data_vector)==0) @@ -574,7 +574,7 @@ static PyObject* PyBobLearnEMPLDATrainer_enrol(PyBobLearnEMPLDATrainerObject* se PyBlitzArrayObject* data = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O&", kwlist, &PyBobLearnEMPLDAMachine_Type, &plda_machine, - &PyBlitzArray_Converter, &data)) Py_RETURN_NONE; + &PyBlitzArray_Converter, &data)) return 0; auto data_ = make_safe(data); self->cxx->enrol(*plda_machine->cxx, *PyBlitzArrayCxx_AsBlitz<double,2>(data)); diff --git a/bob/learn/em/test/test_ivector_trainer.py b/bob/learn/em/test/test_ivector_trainer.py index 9ef48e21ffb21c1227954402d57c69c48c9aae08..34d8cad36500f911987bdf42e218f2e9ccfbf1b3 100644 --- a/bob/learn/em/test/test_ivector_trainer.py +++ b/bob/learn/em/test/test_ivector_trainer.py @@ -234,14 +234,14 @@ def test_trainer_nosigma(): m.sigma = sigma for it in range(2): # E-Step - trainer.e_step(m, data) + trainer.eStep(m, data) for k in acc_Nij_Sigma_wij2_ref[it]: assert numpy.allclose(acc_Nij_Sigma_wij2_ref[it][k], trainer.acc_nij_wij2[k], 1e-5) for k in acc_Fnorm_Sigma_wij_ref[it]: assert numpy.allclose(acc_Fnorm_Sigma_wij_ref[it][k], trainer.acc_fnormij_wij[k], 1e-5) # M-Step - trainer.m_step(m) + trainer.mStep(m) assert numpy.allclose(t_ref[it], m.t, 1e-5) def test_trainer_update_sigma(): @@ -348,7 +348,7 @@ def test_trainer_update_sigma(): m.sigma = sigma for it in range(2): # E-Step - trainer.e_step(m, data) + trainer.eStep(m, data) for k in acc_Nij_Sigma_wij2_ref[it]: assert numpy.allclose(acc_Nij_Sigma_wij2_ref[it][k], trainer.acc_nij_wij2[k], 1e-5) for k in acc_Fnorm_Sigma_wij_ref[it]: @@ -357,7 +357,7 @@ def test_trainer_update_sigma(): assert numpy.allclose(N_ref[it], trainer.acc_nij, 1e-5) # M-Step - trainer.m_step(m) + trainer.mStep(m) assert numpy.allclose(t_ref[it], m.t, 1e-5) assert numpy.allclose(sigma_ref[it], m.sigma, 1e-5) diff --git a/bob/learn/em/test/test_jfa_trainer.py b/bob/learn/em/test/test_jfa_trainer.py index 044bbe5281357805fb42a667c1cfdfc85fcdae89..cc6e05518d51949f4d0a21c24a99939227572c91 100644 --- a/bob/learn/em/test/test_jfa_trainer.py +++ b/bob/learn/em/test/test_jfa_trainer.py @@ -230,8 +230,8 @@ def test_ISVTrainAndEnrol(): t.initialize(mb, TRAINING_STATS) mb.u = M_u for i in range(10): - t.e_step(mb, TRAINING_STATS) - t.m_step(mb) + t.eStep(mb, TRAINING_STATS) + t.mStep(mb) assert numpy.allclose(mb.d, d_ref, eps) assert numpy.allclose(mb.u, u_ref, eps) diff --git a/bob/learn/em/ztnorm.cpp b/bob/learn/em/ztnorm.cpp index 2164aed3e63199de8923967ee5fe955942bb2063..b000b5fcb08091bcd9664bce395807625e980ebd 100644 --- a/bob/learn/em/ztnorm.cpp +++ b/bob/learn/em/ztnorm.cpp @@ -36,7 +36,7 @@ static PyObject* PyBobLearnEM_ztNorm(PyObject*, PyObject* args, PyObject* kwargs &PyBlitzArray_Converter, &rawscores_zprobes_vs_tmodels_o, &PyBlitzArray_Converter, &mask_zprobes_vs_tmodels_istruetrial_o)){ zt_norm.print_usage(); - Py_RETURN_NONE; + return 0; } // get the number of command line arguments @@ -90,7 +90,7 @@ static PyObject* PyBobLearnEM_tNorm(PyObject*, PyObject* args, PyObject* kwargs) if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&", kwlist, &PyBlitzArray_Converter, &rawscores_probes_vs_models_o, &PyBlitzArray_Converter, &rawscores_probes_vs_tmodels_o)){ zt_norm.print_usage(); - Py_RETURN_NONE; + return 0; } auto rawscores_probes_vs_models_ = make_safe(rawscores_probes_vs_models_o); @@ -127,7 +127,7 @@ static PyObject* PyBobLearnEM_zNorm(PyObject*, PyObject* args, PyObject* kwargs) if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&", kwlist, &PyBlitzArray_Converter, &rawscores_probes_vs_models_o, &PyBlitzArray_Converter, &rawscores_zprobes_vs_models_o)){ zt_norm.print_usage(); - Py_RETURN_NONE; + return 0; } auto rawscores_probes_vs_models_ = make_safe(rawscores_probes_vs_models_o); diff --git a/doc/guide.rst b/doc/guide.rst index b549affb7177b568a890c3fa058cb95aade2e5c6..d7895aa6c42549f8aaaf554b05f7f88f7f485eeb 100644 --- a/doc/guide.rst +++ b/doc/guide.rst @@ -219,7 +219,7 @@ statistics of this input sample, and then calling the >>> gs = bob.learn.em.GMMStats(2,3) >>> gmm.acc_statistics(sample, gs) - >>> score = m.forward(gs) + >>> score = m(gs) As with other machines you can save and re-load machines of this type using :py:meth:`bob.learn.em.JFAMachine.save` and the class constructor @@ -273,7 +273,7 @@ statistics of this input sample, and then calling the >>> gs = bob.learn.em.GMMStats(2,3) >>> gmm.acc_statistics(sample, gs) - >>> score = m.forward(gs) + >>> score = m(gs) As with other machines you can save and re-load machines of this type using :py:meth:`bob.learn.em.ISVMachine.save` and the class constructor @@ -309,7 +309,7 @@ extracting the GMM sufficient statistics, and then estimating the i-vector: >>> gs = bob.learn.em.GMMStats(2,3) >>> gmm.acc_statistics(sample, gs) - >>> w_ij = m.forward(gs) + >>> w_ij = m(gs) As with other machines you can save and re-load machines of this type using :py:meth:`bob.learn.em.IVectorMachine.save` and the class constructor @@ -472,11 +472,9 @@ set. :options: +NORMALIZE_WHITESPACE >>> relevance_factor = 4. - >>> trainer = bob.learn.em.MAP_GMMTrainer(relevance_factor, True, False, False) # mean adaptation only + >>> trainer = bob.learn.em.MAP_GMMTrainer(gmm, relevance_factor=relevance_factor, update_means=True, update_variances=False, update_weights=False) # mean adaptation only >>> trainer.convergence_threshold = 1e-5 >>> trainer.max_iterations = 200 - >>> trainer.set_prior_gmm(gmm) - True >>> gmmAdapted = bob.learn.em.GMMMachine(2,3) # Create a new machine for the MAP estimate >>> trainer.train(gmmAdapted, dataMAP) >>> print(gmmAdapted) # doctest: +SKIP