从UI中删除mlflow实验中的一个运行,这样后端存储中就不存在运行
Delete a run in the experiment of mlflow from the UI so the run does not exist in backend store
我发现删除 run
只会将状态从 active
更改为 deleted
,因为如果搜索 运行 在 UI 中仍然可见通过 deleted
。
是否可以从 UI 中删除一个 run
以保存 space?
移除一个运行时,运行对应的神器是否也被移除?
如果没有,是否可以通过 rest call 删除 运行?
您无法通过网络完成 UI 但您可以从 python 终端
import mlflow
mlflow.delete_experiment(69)
其中 69 是实验 ID
接受的答案确实删除了实验,而不是实验的 运行。
要删除目录,可以使用 mlflow API。这是删除所有已删除 运行s 的脚本:
import mlflow
import shutil
def get_run_dir(artifacts_uri):
return artifacts_uri[7:-10]
def remove_run_dir(run_dir):
shutil.rmtree(run_dir, ignore_errors=True)
experiment_id = 1
deleted_runs = 2
exp = mlflow.tracking.MlflowClient(tracking_uri='./mlflow/mlruns')
runs = exp.search_runs(str(experiment_id), run_view_type=deleted_runs)
_ = [remove_run_dir(get_run_dir(run.info.artifact_uri)) for run in runs]
我发现删除 run
只会将状态从 active
更改为 deleted
,因为如果搜索 运行 在 UI 中仍然可见通过 deleted
。
是否可以从 UI 中删除一个 run
以保存 space?
移除一个运行时,运行对应的神器是否也被移除?
如果没有,是否可以通过 rest call 删除 运行?
您无法通过网络完成 UI 但您可以从 python 终端
import mlflow
mlflow.delete_experiment(69)
其中 69 是实验 ID
接受的答案确实删除了实验,而不是实验的 运行。
要删除目录,可以使用 mlflow API。这是删除所有已删除 运行s 的脚本:
import mlflow
import shutil
def get_run_dir(artifacts_uri):
return artifacts_uri[7:-10]
def remove_run_dir(run_dir):
shutil.rmtree(run_dir, ignore_errors=True)
experiment_id = 1
deleted_runs = 2
exp = mlflow.tracking.MlflowClient(tracking_uri='./mlflow/mlruns')
runs = exp.search_runs(str(experiment_id), run_view_type=deleted_runs)
_ = [remove_run_dir(get_run_dir(run.info.artifact_uri)) for run in runs]