#python #python-3.x #mlflow
Вопрос:
Я создаю эксперимент mlflow, в котором регистрируется модель логистической регрессии вместе с метрикой и артефактом.
import mlflow
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import precision_recall_fscore_support
with mlflow.start_run(run_name=run_name, experiment_id=experiment_id):
logreg = LogisticRegression()
logreg.fit(x_train, y_train)
print('training over', flush=True)
y_pred = logreg.predict(x_test)
mlflow.sklearn.log_model(logreg, "model")
mlflow.log_metric("f1", precision_recall_fscore_support(y_test, y_pred, average='weighted')[2])
mlflow.log_artifact(x_train.to_csv('train.csv')
для получения некоторых данных ( x_train, y_train, x_test, y_test
)
Есть ли какой-либо способ получить доступ к артефактам для этого конкретного experiment_id для этого имени запуска и прочитать train.csv
, а также прочитать model
?
Ответ №1:
Существует функция download_artifacts, которая позволяет вам получить доступ к зарегистрированному артефакту:
local_path = client.download_artifacts(run_id, "train.csv", local_dir)
Артефакт модели можно либо загрузить с помощью той же функции (должен быть вызван объект model/model.pkl
(для scikit-learn или что-то еще), либо вы можете загрузить модель, выполнив:
loaded_model = mlflow.pyfunc.load_model(f"runs:/{run_id}/model")