我正在使用mlflow,并希望在加载时处理不同的口味(例如sklearn
,tensorflow
和keras
)。
实际上,我只在
中找到关于存储的flavor
作为字符串的信息Run.to_dictionary()['data']['tags']['mlflow.log-model.history']
输出:
[{"run_id": "8ea47843f7b446828dbd9cd3a1ed2339", "artifact_path": "model", "utc_time_created": "2022-04-26 10:39:55.639791", "flavors": {"keras": {"keras_module": "tensorflow.keras", "keras_version": "2.7.0", "save_format": "tf", "data": "data", "code": null}, "python_function": {"loader_module": "mlflow.keras", "python_version": "3.8.10", "data": "data", "env": "conda.yaml"}}, "model_uuid": "3bd37bdb0aa1409aabc65f8314018642", "mlflow_version": "1.25.1"}]
Run是mlflow.entities.Run
对象。
使用ast.literal_eval
将字符串转换为字典失败。
ast.literal_eval(str(self.run.to_dictionary()['data']['tags']['mlflow.log-model.history'][1:-1]))
mlflow的文档。pyfunc说:
python_function模型风格作为MLflow Python模型的默认模型接口。任何MLflow Python模型都可以作为python_function模型加载。
这意味着你可以使用mlflow.pyfunc.load_model
来加载所有mlflow支持的口味。