如何将Azure ML sklearn模型保存到特定的blob存储容器?

t0ybt7op  于 2023-06-06  发布在  其他
关注(0)|答案(2)|浏览(167)

将sklearn模型从AzureML保存到blob存储
简单地说,我在Azure ML中有一个sklearn模型。我想把模型写到一个特定的blob存储容器来保存它。我已经验证了到正确blob容器的连接。根据文件:

# Create a blob client using the local file name as the name for the blob
blob_client = blob_service_client.get_blob_client(container=container_name, blob=file_name)

# Upload the created file
with open(file=upload_file_path, mode="rb") as data:
    blob_client.upload_blob(data)

但是,这需要我首先将模型保存到本地文件。是否有与AzureML关联的本地文件存储?
或者,我是否可以写回数据存储区,但将数据存储区指向特定的存储容器?

qkf9rpyu

qkf9rpyu1#

首先,将模型保存在本地,如下所示。

mlflow.sklearn.save_model(
sk_model=clf,
path=os.path.join(os.path.abspath('credit_defaults_model'), "trained_model")
)

这里,os.path.abspath('credit_defaults_model')给出了本地文件系统的路径。在那里,您可以保存执行以上ml代码的模型。
然后你会得到文件突出显示的图像。
稍后,将model.pkl文件上载到blob存储。

from  azure.storage.blob  import  BlobServiceClient, BlobClient, ContainerClient
connection_string = "<your connection string>"

container_name = "data"
local_file_path = os.path.join(os.path.abspath('credit_defaults_model'), "trained_model/model.pkl")
file_name = "from_ml/sklearn.pkl"

blob_service_client = BlobServiceClient.from_connection_string(connection_string)
container_client = blob_service_client.get_container_client(container_name)
blob_client = container_client.get_blob_client(file_name)

with  open(local_file_path, "rb") as  data:
    blob_client.upload_blob(data)
print("File uploaded successfully!")

输出:

在这里,模型成功上传到blob。

dohp0rv5

dohp0rv52#

无需使用临时文件来上载模型。您可以直接将其传递给upload_blob函数。例如,Data可以是酸洗。

相关问题