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文件夹下内容变为:
成功*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。