导入MNIST数据集的IOError

时间:2017-04-06 15:07:37

标签: python tensorflow mnist

我按照TensorFlow教程导入MNIST数据集,我运行这些命令:

from tensorflow.examples.tutorials.mnist import input_data 
mnist = input_data.read_data_sets('MNIST_data', one_hot=True)

然后显示错误:

anaconda2/lib/python2.7/gzip.pyc
IOError: Not a gzipped file

我是python和tensorflow的新手,我不明白这意味着什么,感谢您的帮助。

我的系统是ubuntu,在Ipython 5.1.0上运行。

1 个答案:

答案 0 :(得分:1)

含义:

这意味着它正在查看MNIST_data目录,它正在查看的文件不是gzip文件。更具体地说,它很可能仅仅意味着它在目录中查找并且在这种情况下无法找到文件。这可能是由于各种原因造成的。我相信我的情况是因为某些原因,当它发现文件没有存在于MNIST_data目录中时,它不会下载文件。

我有这个确切的问题而且非常讨厌。

<强>解决方案:

直接通过浏览器在控制台中使用curl获取数据。

curl -O http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz
curl -O http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz
curl -O http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz
curl -O http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz

将数据放在root tmp目录中。我把它放进去了 /tmp/tensorflow/mnist/input_data但您可以将其放在任何想要放置的地方。

然后更改您的行以获取与您放置数据的目录匹配的mnist数据。

mnist = input_data.read_data_sets('tmp/tensorflow/mnist/input_data', one_hot=True)

我的环境:(如果开始对你很重要)

在virtualenv中安装的tensorflow pip

python 2.7.10

tensorflow == 1.4.0

MacOS Sierra