hackingmaterials/automatminer

MatPipe save/load does not work on TPOTAdaptor pipelines

Closed this issue · 1 comments

from automatminer import get_preset_config, MatPipe
from matminer.datasets import load_dataset


df = load_dataset("matbench_jdft2d")
fname = "example.p"


pipe = MatPipe(**get_preset_config("debug"))

pipe.fit(df, "exfoliation_en")

pipe.save(fname)

loaded_pipe = MatPipe.load(fname)

output = loaded_pipe.predict(df)
print(output)

Fails with

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/mag1/atomate/atomate_env/lib/python3.6/site-packages/automatminer/utils/pkg.py", line 65, in wrapper
    return func(*args, **kwargs)
  File "/home/mag1/atomate/atomate_env/lib/python3.6/site-packages/automatminer/pipeline.py", line 170, in predict
    predictions = self.learner.predict(df, self.target)
  File "/home/mag1/atomate/atomate_env/lib/python3.6/site-packages/automatminer/utils/pkg.py", line 65, in wrapper
    return func(*args, **kwargs)
  File "/home/mag1/atomate/atomate_env/lib/python3.6/site-packages/automatminer/utils/log.py", line 94, in wrapper
    result = meth(*args, **kwargs)
  File "/home/mag1/atomate/atomate_env/lib/python3.6/site-packages/automatminer/automl/base.py", line 115, in predict
    y_pred = self.best_pipeline.predict(X)
  File "/home/mag1/atomate/atomate_env/lib/python3.6/site-packages/automatminer/automl/adaptors.py", line 197, in best_pipeline
    return self._backend.fitted_pipeline_
AttributeError: 'Pipeline' object has no attribute 'fitted_pipeline_'

Fixed via db8e940