到目前为止,我正在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/