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文件夹下内容变为:

 

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

 

 

 

 

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值