1

我建立了一个机器学习模型:

lr = LinearRegression()
lr.fit(X_train, y_train)

我可以通过以下方式将其保存到文件存储中:

filename = "/dbfs/FileStore/lr_model.pkl"
with open(filename, 'wb') as f:
    pickle.dump(lr, f)

理想情况下,我想将模型直接保存到工作区或存储库中,所以我尝试了:

filename = "/Users/user/lr_model.pkl"
os.makedirs(os.path.dirname(filename), exist_ok=True)
with open(filename, 'wb') as f:
    pickle.dump(lr, f)

但它不起作用,因为该文件未显示在工作区中。

我现在唯一的选择是将模型从文件存储转移到工作区或存储库,我该怎么做?

4

1 回答 1

0

当您将文件存储在 DBFS ( /FileStore/...) 中时,它就在您的帐户(数据平面)中。而笔记本等位于 Databricks 帐户(控制平面)中。按照设计,您不能将非代码对象导入工作区。但是 Repos 现在支持任意文件,尽管只有一个方向 - 您可以从运行在数据平面中的集群访问 Repos 中的文件,但您不能写入 Repos(至少现在不是)。你可以:

但实际上,您应该使用 Azure Databricks 中内置的 MLflow,它将通过记录模型文件、超参数和其他信息来帮助您。然后您可以使用 API、命令工具等使用此模型,例如,使用模型注册表在暂存和生产阶段之间移动模型将模型部署到 AzureML等。

于 2022-01-31T11:22:41.133 回答