我无法在MLFlow中存储、查看和检索工件。工件文件夹是空的,与创建新实验和分配正确的实验名称和位置无关。
服务器: mlflow server --backend-store-uri mlruns/ --default-artifact root mlruns/ --host 0.0.0.0 --port 5000
创建一个实验: mlflow.create_experiment(exp_name,artifact_location=‘mlrun/’)
with mlflow.start_run():
mlflow.log_metric("mse", float(binary))
mlflow.log_artifact(data_path, "data")
# log model
mlflow.keras.log_model(model, "models")代码编译并运行,但没有记录任何工件。它有mlflow.log-model.history文件,但没有model.h5
发布于 2021-04-09 17:34:00
当我开始开发MLflow时,我也遇到了同样的问题。
所以概念是tracking uri和artifact uri是两个不同的东西。
tracking uri存储日志,artifact uri存储工件(如yaml、pkl等)。
但是如果你想要一个通用的uri,你可以使用SQLite作为本地数据库,然后你的命令就会是这样的……
mlflow服务器--后端存储-uri sqlite:/mlruns.db--主机0.0.0.0 --端口5000
Note:如果您使用的是远程服务器,那么您的工件存储也应该是远程存储,它不适用于本地数据库
别忘了显式地设置跟踪uri,也有两种方法:
代码mlflow.set_tracking_uri("sqlite:///mlruns.db")
export MLFLOW_TRACKING_URI=sqlite:///mlruns.db发布于 2021-04-12 16:43:13
工件存储需要对服务器和客户端都是可访问的。如果您的客户端是从远程计算机连接的,并且您还没有配置像S3这样的远程工件存储,那么它们的工件文件将保存在本地。您可以查看本地存储
这里有一个关于现在支持的不同工件存储的解释:https://mlflow.org/docs/latest/tracking.html#artifact-stores
发布于 2021-06-22 17:01:48
我也有同样的问题(对于mlflow.pytorch)。对我来说,它是通过替换log_model()和log_atrifacts()来修复的。
所以记录这个工件的是:
mlflow.log_metric("metric name", [metric value])
mlflow.pytorch.log_model(model, "model")
mlflow.log_artifacts(output_dir)此外,对于终端中的ui,请cd到mlruns所在的目录。例如,如果mlruns的位置是...\your-project\mlruns
cd ...\your-project转到安装了mlflow的环境。
...\your-project> conda activate [myenv]然后,运行mlflow ui
(myenv) ...\your-project> mlflow ui我在this post中也回答了这个问题:
https://stackoverflow.com/questions/62720044
复制相似问题