PyTorch torchvision 数据集下载速度很慢

时间:2021-03-12 17:46:52

标签: python download pytorch torchvision

我在 colab notebook 中有以下代码块,用于从 torchvision 下载 EMNIST 数据集。有时我会随机收到一个错误提示

connectionError: HTTPConnectionPool(host='www.itl.nist.gov', port=80): Max retries exceeded with url: /iaui/vip/cs_links/EMNIST/gzip.zip (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f701d0936d0>: Failed to establish a new connection: [Errno 110] Connection timed out'))

因此,我制作了一个代码块,其中包含一个函数,如果尝试下载失败,该函数会调用自身(请参阅帖子底部)。有时下载实际上开始工作,但速度非常慢。进度条见下方截图

enter image description here 从屏幕截图中的 URL 下载 <1GB 的数据超过两个小时。将数据集直接下载到我的机器上大约需要 60 秒,因此提供数据的服务器没有问题。 colab 与服务器的互联网连接或 PyTorch 处理数据下载的方式似乎有问题。我真的不知道该怎么做才能解决这个问题。我多次尝试重新连接运行时,但发生了同样的问题。

数据下载代码:

from torchvision import transforms, datasets

train_data = None
test_data = None
def load_data():
  global train_data, test_data
  try:
    train_data = datasets.EMNIST("./data", split="balanced", train=True, download=True,
                                transform=transforms.Compose([
                                                              transforms.ToTensor()
                                ]))

    test_data = datasets.EMNIST("./data", split="balanced", train=False, download=True,
                                transform=transforms.Compose([
                                                              transforms.ToTensor()
                                ]))
  except:
    load_data()

load_data()
print(train_data)
print(test_data)

0 个答案:

没有答案