到目前为止,我正在jupyterhub环境中使用mlflow进行模型跟踪,并且我感到很容易通过调用run来跟踪mlflow中的工件:

with mlflow.start_run():
    lr = ElasticNet(alpha=alpha, l1_ratio=l1_ratio, random_state=42)
    lr.fit(train_x, train_y)

    predicted_qualities = lr.predict(test_x)

    (rmse, mae, r2) = eval_metrics(test_y, predicted_qualities)

    mlflow.log_param("alpha", alpha)
    mlflow.log_param("l1_ratio", l1_ratio)
    mlflow.log_metric("rmse", rmse)
    mlflow.log_metric("r2", r2)
    mlflow.log_metric("mae", mae)

    mlflow.sklearn.log_model(lr, "model")


我现在要移至Kubeflow,不确定是否可以在不做形的情况下在这里做同样的事情。我可以找到的是:

client.run_pipleline(exp.id, ....)


有什么方法可以跟踪Kubeflow中的mlflow之类的实验吗?

最佳答案

使用Kubeflow 0.6,您可以做到这一点(至少在Juypter笔记本电脑中,不要认为它尚未与Kubeflow Pipelines集成)。

这里有一个示例:https://github.com/kubeflow/metadata/blob/master/sdk/python/sample/demo.ipynb

如果将来链接消失,请在此处复制一些片段:

from kubeflow.metadata import metadata

# Create a workspace and use similar APIs to create execution
ws1 = metadata.Workspace(
    # Connect to metadata-service in namesapce kubeflow in k8s cluster.
    backend_url_prefix="metadata-service.kubeflow:8080",
    name="ws1",
    description="a workspace for testing",
    labels={"n1": "v1"})


使用以下命令在给定的exec中记录数据:

data_set = exec.log_input(
        metadata.DataSet(
            description="an example data",
            name="mytable-dump",
            owner="[email protected]",
            uri="file://path/to/dataset",
            version="v1.0.0",
            query="SELECT * FROM mytable"))
assert data_set.id
print("data set id is %s" % data_set.id)

关于python - 使用不带管道的Kubeflow保存模型工件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57653495/

10-12 17:40