gpt4 book ai didi

azure-functions - 使用 pickle 或 dill 从 Azure blob 存储读取文件而不保存到磁盘

转载 作者:行者123 更新时间:2023-12-05 01:10:20 24 4
gpt4 key购买 nike

我正在尝试从 Python 中的 Azure 存储 Blob 读取机器学习模型的权重。这应该在 Azure Functions 中运行,所以我不相信我能够使用将 blob 保存到磁盘的方法。

我使用的是 azure-storage-blob 12.5.0,而不是旧版本。

我尝试过使用 Dill.loads 来加载 .pkl 文件,如下所示:

connection_string = 'my_connection_string'
blob_client = BlobClient.from_connection_string(connection_string, container_name, blob_name)
downloader = blob_client.download_blob(0)

with BytesIO() as f:
downloader.readinto(f)
weights = dill.loads(f)

返回:

>>> TypeError: a bytes-like object is required, not '_io.BytesIO'

我不确定使用 Pickle 的方法会如何。怎么解决?

最佳答案

解决这个问题的方法如下:

def get_weights_blob(blob_name):
connection_string = 'my_connection_string'
blob_client = BlobClient.from_connection_string(connection_string, container_name, blob_name)
downloader = blob_client.download_blob(0)

# Load to pickle
b = downloader.readall()
weights = pickle.loads(b)

return weights

然后使用函数检索权重:

weights = get_weights_blob(blob_name = 'myPickleFile')

关于azure-functions - 使用 pickle 或 dill 从 Azure blob 存储读取文件而不保存到磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64206074/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com