首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从HTTP链接加载.npz

从HTTP链接加载.npz
EN

Stack Overflow用户
提问于 2018-01-20 10:43:51
回答 1查看 1.2K关注 0票数 1

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

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

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2018-01-20 11:28:06

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

file:类似文件的对象、字符串或pathlib.Path要读取的文件.类似文件的对象必须支持File()和read()方法。经过腌制的文件要求类似文件的对象也支持readline()方法。

如果您要通过http提供这些文件,并且您的服务器支持Range头,您可以使用这个answer中提供的实现(Python2),例如:

代码语言:javascript
复制
F = HttpFile('http://localhost:8000/meta.data.npz')
with np.load(F) as data:
    a = data['arr_0']
    print(a)

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

代码语言:javascript
复制
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'])
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48355140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档