Python3:pickle加载文件产生UnicodeDecodeError


描述

  • 我在做mnist项目的时候,需要读取mnist.pkl.gz文件,找到示例代码如下:
import cPickle
import gzip
f = gzip.open('../data/mnist.pkl.gz')
training_data, validation_data, test_data = cPickle.load(f)
f.close()
Bug_1. 没有cPickle这个模块
  • CPickle这个模块是Python2中的,Python3中换成了pickle,修改代码如下:
import pickle
import gzip
f = gzip.open('../data/mnist.pkl.gz')
training_data, validation_data, test_data = pickle.load(f)
f.close()
Bug_2. 如下:
UnicodeDecodeError         Traceback (most recent call last)
<ipython-input-3-8d9106f12f50> in <module>()
      1 f = gzip.open('data/mnist.pkl.gz')
----> 2 train_data, cv_data, test_data = pickle.load(f)
      3 f.close()

UnicodeDecodeError: 'ascii' codec can't decode byte 0x90 in position 614: ordinal not in range(128)
  • 这里出现了解码错误
  • 修改代码如下:
f = gzip.open('data/mnist.pkl.gz')
train_data, cv_data, test_data = pickle.load(f, encoding='iso-8859-1')
f.close()

数据可以读入, 完工!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 2018.3.21 瑜伽理论知识学习 瑜伽练习,激活这块肌肉有多重要? 瑜伽练习中,尤其是涉及到核心以及双腿的练习...
    冰柠檬香草阅读 1,265评论 0 0

友情链接更多精彩内容