Skip to content

Commit

Permalink
Merge pull request #31 from IndicoDataSolutions/ben/add_explicit_cleanup
Browse files Browse the repository at this point in the history
ADD: explicit cleanup
  • Loading branch information
madisonmay committed Dec 3, 2018
2 parents 484e32c + dfb3893 commit 2ed866a
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 5 deletions.
4 changes: 4 additions & 0 deletions enso/experiment/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ def _run_sub_experiment(self, experiment_cls, dataset, train, test, target, curr

test_pred = experiment.predict(test_set, subset='TEST')
train_pred = experiment.predict(train_set, subset='TRAIN')
experiment.cleanup()
result = self._measure_experiment(
target=test_labels,
result=test_pred,
Expand Down Expand Up @@ -275,6 +276,9 @@ def _verify_output(cls, function):
"""
return function

def cleanup(self):
pass


class ClassificationExperiment(Experiment):
"""Base class for classification experiments."""
Expand Down
16 changes: 11 additions & 5 deletions enso/experiment/finetuning.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class Finetune(ClassificationExperiment):
def __init__(self, *args, **kwargs):
"""Initialize internal classifier."""
super().__init__(*args, **kwargs)
self.model = Classifier(autosave_path=os.path.join(RESULTS_DIRECTORY, '.autosave'))
self.model = Classifier()

def fit(self, X, y):
"""
Expand All @@ -36,19 +36,26 @@ def predict(self, X, **kwargs):
preds = self.model.predict_proba(X)
return pd.DataFrame.from_records(preds)

def cleanup(self):
del self.model


@Registry.register_experiment(ModeKeys.SEQUENCE, requirements=[("Featurizer", "PlainTextFeaturizer")])
class FinetuneSequenceLabel(ClassificationExperiment):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.model = SequenceLabeler(autosave_path=os.path.join(RESULTS_DIRECTORY, '.autosave'), val_size=0)
self.model = SequenceLabeler(val_size=0)

def fit(self, X, y):
self.model.fit(X, y)

def predict(self, X, **kwargs):
return self.model.predict(X)

def cleanup(self):
del self.model



@Registry.register_experiment(ModeKeys.SEQUENCE, requirements=[("Featurizer", "PlainTextFeaturizer")])
class IndicoSequenceLabel(ClassificationExperiment):
Expand Down Expand Up @@ -83,6 +90,5 @@ def predict(self, X, **kwargs):
predictions.extend(self.model.predict(data))
return predictions

def __del__(self):
self.model.clear()
1
def cleanup(self):
self.model.clear()

0 comments on commit 2ed866a

Please sign in to comment.