gpt4 book ai didi

python - 从 HTTP 链接加载 .npz

转载 作者:行者123 更新时间:2023-12-01 02:16:15 24 4
gpt4 key购买 nike

我使用 Web 服务通过 AWS 上的 Jupyter Notebook 来训练我的一些深度学习模型。出于成本原因,我希望将数据作为 .npz 文件存储在我自己的服务器上,并将它们直接加载到我的远程计算机的内存中。

np.load() 函数不适用于 http 链接并使用 urlretrieve 我无法使其工作。我只能使用 wget 下载数据,然后从本地路径加载文件。但是,这并不能完全解决我的问题。

有什么建议吗?

最佳答案

问题是,如果np.load的第一个参数是一个类似文件的对象,它必须是seek-able:

file : file-like object, string, or pathlib.Path The file to read. File-like objects must support the seek() and read() methods. Pickled files require that the file-like object support the readline() method as well.

如果您要通过 http 提供这些文件,并且您的服务器支持 Range header ,您可以采用此 answer 中介绍的实现 (Python 2)例如:

F = HttpFile('http://localhost:8000/meta.data.npz')
with np.load(F) as data:
a = data['arr_0']
print(a)

或者,您可以获取整个文件,创建一个内存中的类似文件的对象并将其传递给 np.load:

from io import BytesIO
import numpy as np
import requests

r = requests.get('http://localhost:8000/meta.data.npz', stream = True)
data = np.load(BytesIO(r.raw.read()))
print(data['arr_0'])

关于python - 从 HTTP 链接加载 .npz,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48355140/

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