【问题标题】:python pickle UnicodeDecodeError 'latin1' not workingpython pickle UnicodeDecodeError 'latin1' 不起作用
【发布时间】:2018-03-11 12:22:36
【问题描述】:

我正在尝试做一些神经网络工作,但我得到了针对 Python 2.7 编码的文件,并且我有 Python 3.6 。那是我的代码:

import _pickle as cPickle
import gzip
import numpy as np
def load_data():
    k = gzip.open('../data/mnist.pkl.gz', 'rb')
    training_data, validation_data, test_data = cPickle.load(k, encoding='latin1')
    k.close()
    return (training_data, validation_data, test_data)

这就是我不断遇到的错误:

文件“mnist_loader.py”,第 44 行,在 load_data 中 training_data, validation_data, test_data = cPickle.load(k, encoding='latin1')

UnicodeDecodeError:“ascii”编解码器无法解码位置 614 中的字节 0x90:序数不在范围内 (128)

查看 StackOverflow,我看到有人说我应该输入 'encode = 'latin1'',所以我就是这样做的,但我一直遇到问题。

非常感谢!

【问题讨论】:

    标签: python python-3.x neural-network gzip pickle


    【解决方案1】:

    最后,我尝试了这个:

    with gzip.open('../data/mnist.pkl.gz', 'rb') as k:
        training_data, validation_data, test_data = cPickle.load(k, encoding='latin1')
        k.close()
    return (training_data, validation_data, test_data)
    

    它似乎正在工作,但我不知道为什么;)

    谢谢大家!

    【讨论】:

      猜你喜欢
      • 2017-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 2021-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多