diff --git a/bob/bio/base/config/examples/pca_mobio-male.py b/bob/bio/base/config/examples/pca_mobio-male.py index 4d3e71a89556183a6f01d0098b94ab13c5162078..1998b7ff33971c0536e4ca5dd2bcd5d140c39e6e 100644 --- a/bob/bio/base/config/examples/pca_mobio-male.py +++ b/bob/bio/base/config/examples/pca_mobio-male.py @@ -9,8 +9,8 @@ from bob.bio.base.mixins.legacy import LegacyProcessorMixin, LegacyAlgorithmMixi from bob.bio.base.pipelines.vanilla_biometrics.legacy import LegacyBiometricAlgorithm import os -base_dir = "/idiap/temp/tpereira/mobio/pca" -#base_dir = "./example" +#base_dir = "/idiap/temp/tpereira/mobio/pca" +base_dir = "./example" original_directory=rc['bob.db.mobio.directory'] @@ -63,7 +63,7 @@ extractor = Pipeline(steps=[ ('1',CheckpointSampleLinearize(features_dir=os.path.join(base_dir,"extractor1"))), ('2',CheckpointSamplePCA(features_dir=os.path.join(base_dir,"extractor2"), model_path=os.path.join(base_dir,"pca.pkl"))) ]) -extractor = dask_it(extractor, npartitions=48) +extractor = dask_it(extractor, npartitions=3) from bob.bio.base.pipelines.vanilla_biometrics.biometric_algorithm import Distance, BiometricAlgorithmCheckpointMixin diff --git a/bob/bio/base/mixins/legacy.py b/bob/bio/base/mixins/legacy.py index d572d1617deaada842d1fa42a878be9736b7730c..3cf0d70f3b3448b49379af0bf6b22b2c58aa1899 100644 --- a/bob/bio/base/mixins/legacy.py +++ b/bob/bio/base/mixins/legacy.py @@ -97,6 +97,14 @@ class LegacyProcessorMixin(TransformerMixin): X = check_array(X, allow_nd=True) return [self.instance(x) for x in X] + def __setstate__(self): + # Handling unpicklable objects + self.instance = None + + def __getstate__(self): + # Handling unpicklable objects + self.instance = None + from bob.pipelines.mixins import CheckpointMixin, SampleMixin class LegacyAlgorithmMixin(CheckpointMixin, SampleMixin, BaseEstimator): @@ -147,8 +155,6 @@ class LegacyAlgorithmMixin(CheckpointMixin, SampleMixin, BaseEstimator): # Organizing the date by class bob_X = scikit_to_bob_supervised(X, y) self.instance.train_projector(bob_X, self.projector_file) - else: - self.instance.train_projector(X, **fit_params) # Deleting the instance, so it's picklable self.instance = None @@ -198,6 +204,14 @@ class LegacyAlgorithmMixin(CheckpointMixin, SampleMixin, BaseEstimator): else: raise ValueError("Type not allowed %s" % type(X[0])) + def __setstate__(self): + # Handling unpicklable objects + self.instance = None + + def __getstate__(self): + # Handling unpicklable objects + self.instance = None + def get_reader(reader, path): if is_picklable(reader): diff --git a/bob/bio/base/mixins/linearize.py b/bob/bio/base/mixins/linearize.py index 9d676a476e7116fc6c181a866eda69ade8e46446..03d079567018361610c8573031f6bbffd9bfbacb 100644 --- a/bob/bio/base/mixins/linearize.py +++ b/bob/bio/base/mixins/linearize.py @@ -5,7 +5,7 @@ from bob.pipelines.mixins import CheckpointMixin, SampleMixin from sklearn.base import TransformerMixin -from sklearn.utils.validation import check_array, check_is_fitted +from sklearn.utils.validation import check_array import numpy @@ -15,9 +15,6 @@ class Linearize(TransformerMixin): If a ``dtype`` is specified in the contructor, it is assured that the resulting """ - def fit(self, X, y=None): - return self - def transform(self, X): """__call__(data) -> data