如何将机器学习模型 pickle 存储到 azure blob 并检索它/

Posted

技术标签:

【中文标题】如何将机器学习模型 pickle 存储到 azure blob 并检索它/【英文标题】:How to store the machine learning model pickle to azure blob and retrieve it/ 【发布时间】:2020-06-02 20:50:05 【问题描述】:

我从我的机器学习模型中创建了一个泡菜,它正在本地保存。我想将它推送到 azure blob 存储并想稍后检索它。我该如何使用 python 3 来完成。请帮忙。

'''

#model
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.3, random_state = 100)
regressor = LinearRegression()
regressor.fit(X_train, Y_train)

#Creating the pickle file finalized_model.sav on my local

mypickle = 'finalized_model.sav'
pickle.dump(regressor, open(mupickle, 'wb'))

'''

I tried following for .csv importing and pushing from azure, but don't know how to do with pickle files.

'''

with BytesIO() as input_blob:

    block_blob_service = BlockBlobService(account_name='*****', 
    account_key='*********************************************************************')
    block_blob_service.get_blob_to_stream('blobcontainer', 'claims.csv', input_blob)
    input_blob.seek(0) 
    dataframe_blobdata = pd.read_csv(input_blob)

    #transforming the data in between

    output = dataframe_blobdata.to_csv (index_label="idx", encoding = "utf-8")

    block_blob_service.create_blob_from_text('secondforblobcontainer', 'OutFilePy.csv', output)

'''

【问题讨论】:

请问我的回答是否有帮助? 【参考方案1】:

根据我的理解,您只想将名称为 finalized_model.sav 的图片文件上传到 Azure 存储。

那么我建议你使用azure-storage-blob SDK 来上传一个blob。这是官方示例:Code examples。

具体来说,首先你需要从portal获取你的存储账户的连接字符串,然后用连接字符串创建一个BlobServiceClient,之后你可以通过blob_service_client.create_container(container_name)创建一个容器客户端。 最后,您可以创建一个 blob 客户端,然后根据其路径上传本地文件。

从 Azure 存储下载回来也很容易。 downloading blobs的示例:

with open(download_file_path, "wb") as download_file:
    download_file.write(blob_client.download_blob().readall())

【讨论】:

如果你使用老版本的SDK,还有一个教程供你参考:Manage blobs with Python v2.1 SDK。基本上,重点是block_blob_service.create_blob_from_path( container_name, blob_name, full_path_to_local_file)

以上是关于如何将机器学习模型 pickle 存储到 azure blob 并检索它/的主要内容,如果未能解决你的问题,请参考以下文章

推荐收藏保存和加载机器学习模型的这两个方法不错

Python之pickle

使用pickle保存机器学习模型详解及实战(picklejoblib)

在 Azure 容器实例中部署机器学习模型时如何访问所有已注册的模型?

如何将 Azure 数据湖存储连接到 Azure ML?

如何在 Web 服务 Azure 机器学习工作室中执行多行