PyTorch使用【内置函数下载数据集MNIST】时出现的错误及解决过程

1.1 错误

教程上使用torchvision来下载MNIST数据集,代码如下:

# 使用内置函数下载数据集
train_set = mnist.MNIST('./data', train=True, download=True)
test_set = mnist.MNIST('./data', train=False, download=True)

运行时报错,主要信息如下:

AttributeError: module 'torch.nn' has no attribute 'ModuleDict'

1.2 原因

查阅后发现是版本冲突的问题,0.4.1版本才有ModuleDict模块,于是将原先的0.4.0版本的torch卸载重新下载0.4.1版本

1.3 解决

# 卸载
pip uninstall torch
# 重新安装
pip install http://download.pytorch.org/whl/cpu/torch-0.4.1-cp36-cp36m-win_amd64.whl

同时也更新了对应的torchvision版本:0.4.1==》0.2.2

# 卸载
pip uninstall torchvision

# 安装
pip install torchvision==0.2.2

 

2.1 错误

修改之后可以下载,但是经常下载到一半出现错误

EOFError: Compressed file ended before the end-of-stream marker was reached

2.2 原因

查阅后发现是下载错误,导致文件损坏。

查看自己工程所在目录,转到raw文件夹下:

可以发现文件夹中有部分解压过的文件,和未解压的文件,如果手动解压的话同样会出现上述错误;

2.3 解决

重新删除/下载几次后,仍然不行,

于是决定通过百度网盘手动下载文件,可以参考这里@RainingZ 【mnist数据集下载地址】,亲测有效。

下载完成是这样:

把他们拷贝到工程中的PycharmProjects\PyTorchTest\Include\data\MNIST\raw文件夹下(不需要解压),

再次运行程序:

import numpy as np
import torch
from torchvision.datasets import mnist # 导入pytorch内置数据
from torch import nn
from torch.autograd import Variable

# 使用内置函数下载数据集
train_set = mnist.MNIST('./data', train=True, download=True)    # 若未找到数据集 则自动下载
test_set = mnist.MNIST('./data', train=False, download=True)

此时raw文件夹下内容变为:

 

成功*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章