首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tensorflow教程中的“‘utf 8”解码错误

tensorflow教程中的“‘utf 8”解码错误
EN

Stack Overflow用户
提问于 2016-02-19 19:25:01
回答 2查看 4.7K关注 0票数 6

我遇到了一个奇怪的问题当我跑

代码语言:javascript
复制
  from tensorflow.examples.tutorials.mnist import input_data

  mnist = input_data.read_data_sets('/home/fqiao/development/MNIST_data/', one_hot=True)

我得到:

代码语言:javascript
复制
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/examples/tutorials/mnist/input_data.py", line 199, in read_data_sets
    train_images = extract_images(local_file)
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/examples/tutorials/mnist/input_data.py", line 58, in extract_images
    magic = _read32(bytestream)
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/examples/tutorials/mnist/input_data.py", line 51, in _read32
    return numpy.frombuffer(bytestream.read(4), dtype=dt)[0]
  File "/usr/lib/python3.5/gzip.py", line 274, in read
    return self._buffer.read(size)
  File "/usr/lib/python3.5/_compression.py", line 68, in readinto
    data = self.read(len(byte_view))
  File "/usr/lib/python3.5/gzip.py", line 461, in read
    if not self._read_gzip_header():
  File "/usr/lib/python3.5/gzip.py", line 404, in _read_gzip_header
    magic = self._fp.read(2)
  File "/usr/lib/python3.5/gzip.py", line 91, in read
    self.file.read(size-self._length+read)
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/platform/default/_gfile.py", line 45, in sync
    return fn(self, *args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/platform/default/_gfile.py", line 199, in read
    return self._fp.read(n)
  File "/usr/lib/python3.5/codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte

但是,如果我只是在input_data.py中直接运行代码,那么一切似乎都很好:

代码语言:javascript
复制
>>> dt = numpy.dtype(numpy.uint32).newbyteorder('>')
>>> f = tf.gfile.Open('/home/fqiao/development/MNIST_data/train-images-idx3-ubyte.gz', 'rb')
>>> bytestream = gzip.GzipFile(fileobj=f)
>>> testbytes = numpy.frombuffer(bytestream.read(4), dtype=dt)[0]
>>> testbytes
2051

有人知道这是怎么回事吗?

我的系统:Ubuntu15.10 x64 python3.5.0。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-20 01:56:27

最近的一个变更555e73d已经解决了这个问题。MNIST文件需要以二进制'rb‘模式打开,而不是只打开文本'r’。

票数 6
EN

Stack Overflow用户

发布于 2016-12-28 13:27:40

在我的例子中,问题在于数据文件的编码。

使用vim打开文件并执行:

代码语言:javascript
复制
:set fileencoding=utf-8

解决了我案子中的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35513370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档