python 如何修复在MLflow UI中不显示的伪影

7cjasjjr  于 2023-03-28  发布在  Python
关注(0)|答案(6)|浏览(138)

我使用了MLflow,并使用下面的函数(来自pydataberlin)记录了参数。

def train(alpha=0.5, l1_ratio=0.5):
    # train a model with given parameters
    warnings.filterwarnings("ignore")
    np.random.seed(40)

    # Read the wine-quality csv file (make sure you're running this from the root of MLflow!)
    data_path = "data/wine-quality.csv"
    train_x, train_y, test_x, test_y = load_data(data_path)

    # Useful for multiple runs (only doing one run in this sample notebook)    
    with mlflow.start_run():
        # Execute ElasticNet
        lr = ElasticNet(alpha=alpha, l1_ratio=l1_ratio, random_state=42)
        lr.fit(train_x, train_y)

        # Evaluate Metrics
        predicted_qualities = lr.predict(test_x)
        (rmse, mae, r2) = eval_metrics(test_y, predicted_qualities)

        # Print out metrics
        print("Elasticnet model (alpha=%f, l1_ratio=%f):" % (alpha, l1_ratio))
        print("  RMSE: %s" % rmse)
        print("  MAE: %s" % mae)
        print("  R2: %s" % r2)

        # Log parameter, metrics, and model to MLflow
        mlflow.log_param(key="alpha", value=alpha)
        mlflow.log_param(key="l1_ratio", value=l1_ratio)
        mlflow.log_metric(key="rmse", value=rmse)
        mlflow.log_metrics({"mae": mae, "r2": r2})
        mlflow.log_artifact(data_path)
        print("Save to: {}".format(mlflow.get_artifact_uri()))
        
        mlflow.sklearn.log_model(lr, "model")

一旦我运行train()及其参数,在UI中我看不到Artifacts,但我可以看到模型及其参数和Metric。
在工件选项卡中,它被写为No Artifacts Recorded Use the log artifact APIs to store file outputs from MLflow runs.,但在模型文件夹中的finder中,所有工件都与模型Pickle一起存在。
帮助

7bsow1i6

7bsow1i61#

在我的例子中,我通过在实验的mlruns目录中运行mlflow ui解决了这个问题。
查看Github here上的完整讨论
希望有帮助!

whlutmcx

whlutmcx2#

这段代码没有在本地运行吗?你是否在移动mlruns文件夹?我建议检查 meta文件中的工件URI。如果路径不正确,可能会出现这样的问题。

beq87vna

beq87vna3#

我也遇到了同样的问题(对于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
lymgl2op

lymgl2op4#

我也有类似的问题。在我更改了脚本文件夹后,我的UI没有显示新的运行。
对我有效的解决方案是在启动新UI之前停止所有MLflow UI,以防您正在更改文件夹。

thtygnil

thtygnil5#

我在本地托管的Jupyter Notebook中运行相同的Python代码,当我在包含Jupyter Notebook的目录中运行mlflow ui时,这个问题就解决了。

xiozqbni

xiozqbni6#

我在运行mlflow服务器并在S3中存储工件时遇到了这个问题。能够通过安装boto3修复

相关问题