永久删除实验没有记录在任何地方。我正在使用 Mlflow 和后端 postgres db
这是我运行过的:
client = MlflowClient(tracking_uri=server)
client.delete_experiment(1)
这会删除实验,但是当我运行与刚刚删除的实验同名的新实验时,它将返回以下错误:
mlflow.exceptions.MlflowException: Cannot set a deleted experiment 'cross-sell' as the active experiment. You can restore the experiment, or permanently delete the experiment to create a new one.
我在文档中找不到任何显示如何永久删除所有内容的地方。
不幸的是,目前似乎无法通过 UI 或 CLI 执行此操作:-/
执行此操作的方法取决于您使用的后端文件存储的类型。
文件存储:
如果您使用文件系统作为存储机制(默认),那么这很容易。 “删除”的实验被移动到.trash
文件夹。你只需要清除它:
rm -rf mlruns/.trash/*
从当前版本开始文档 https://www.mlflow.org/docs/latest/cli.html#mlflow-experiments-delete(1.7.2),他们评论道:
建议使用 cron 作业或替代工作流程机制来清除.trash
folder.
SQL数据库:
这比较棘手,因为存在需要删除的依赖项。我正在使用 MySQL,这些命令对我有用:
USE mlflow_db; # the name of your database
DELETE FROM experiment_tags WHERE experiment_id=ANY(
SELECT experiment_id FROM experiments where lifecycle_stage="deleted"
);
DELETE FROM latest_metrics WHERE run_uuid=ANY(
SELECT run_uuid FROM runs WHERE experiment_id=ANY(
SELECT experiment_id FROM experiments where lifecycle_stage="deleted"
)
);
DELETE FROM metrics WHERE run_uuid=ANY(
SELECT run_uuid FROM runs WHERE experiment_id=ANY(
SELECT experiment_id FROM experiments where lifecycle_stage="deleted"
)
);
DELETE FROM tags WHERE run_uuid=ANY(
SELECT run_uuid FROM runs WHERE experiment_id=ANY(
SELECT experiment_id FROM experiments where lifecycle_stage="deleted"
)
);
DELETE FROM runs WHERE experiment_id=ANY(
SELECT experiment_id FROM experiments where lifecycle_stage="deleted"
);
DELETE FROM experiments where lifecycle_stage="deleted";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)