获取名称为 mlflow 实验的 运行 id?
get the run id for an mlflow experiment with the name?
我目前在 mlflow 中创建了一个实验,并在实验中创建了多个 运行。
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error
import mlflow
experiment_name="experiment-1"
mlflow.set_experiment(experiment_name)
no_of_trees=[100,200,300]
depths=[2,3,4]
for trees in no_of_trees:
for depth in depths:
with mlflow.start_run() as run:
model=RandomForestRegressor(n_estimators=trees, criterion='mse',max_depth=depth)
model.fit(x_train, y_train)
predictions=model.predict(x_cv)
mlflow.log_metric('rmse',mean_squared_error(y_cv, predictions))
创建 运行 之后,我想为这个实验获得最好的 run_id。现在,我可以通过查看 mlflow 的 UI 来获得最好的 运行,但是我们如何正确地执行程序?
我们可以从实验名称中获取实验 ID,我们可以使用 python API 来获得最佳运行。
experiment_name = "experiment-1"
current_experiment=dict(mlflow.get_experiment_by_name(experiment_name))
experiment_id=current_experiment['experiment_id']
通过使用实验 ID,我们可以获得所有运行,并且我们可以根据如下指标对它们进行排序。在下面的代码中,rmse 是我的指标名称(因此它可能因指标名称而异)
df = mlflow.search_runs([experiment_id], order_by=["metrics.rmse DESC"])
best_run_id = df.loc[0,'run_id']
我目前在 mlflow 中创建了一个实验,并在实验中创建了多个 运行。
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error
import mlflow
experiment_name="experiment-1"
mlflow.set_experiment(experiment_name)
no_of_trees=[100,200,300]
depths=[2,3,4]
for trees in no_of_trees:
for depth in depths:
with mlflow.start_run() as run:
model=RandomForestRegressor(n_estimators=trees, criterion='mse',max_depth=depth)
model.fit(x_train, y_train)
predictions=model.predict(x_cv)
mlflow.log_metric('rmse',mean_squared_error(y_cv, predictions))
创建 运行 之后,我想为这个实验获得最好的 run_id。现在,我可以通过查看 mlflow 的 UI 来获得最好的 运行,但是我们如何正确地执行程序?
我们可以从实验名称中获取实验 ID,我们可以使用 python API 来获得最佳运行。
experiment_name = "experiment-1"
current_experiment=dict(mlflow.get_experiment_by_name(experiment_name))
experiment_id=current_experiment['experiment_id']
通过使用实验 ID,我们可以获得所有运行,并且我们可以根据如下指标对它们进行排序。在下面的代码中,rmse 是我的指标名称(因此它可能因指标名称而异)
df = mlflow.search_runs([experiment_id], order_by=["metrics.rmse DESC"])
best_run_id = df.loc[0,'run_id']