成功解决Python3版UnicodeDecodeError: 'ascii' codec can't decode byte 0x90 in position 614: ordinal not in
成功解决Python3版UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0x90 in position 614: ordinal not in
解决问题
UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0x90 in position 614: ordinal not in range(128)
解决过程
1、最近在做深度学习的项目,在调用GitHub上的文件时,想利用mnist_loader的数据集,没想到运行以后出现了错误UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0x90 in position 614: ordinal not in range(128)
2、于是,笔者就各种百度啊,,各种度,国内外的,但是答案差不多都有一种,就是添加以下代码
3、可是,笔者在python中各种加入,各种尝试,还把utf8改为gbk试了好几次,又出现了这个错误,我去去去!
4、笔者又不厌其烦的跑去百度,各种度,国内外的,最后发现了预料中的一件事,在Python 3.x中不好使了提示name reload’ is not defined,在3.x中已经被毙掉了被替换为
from imp import reload
reload(sys)
5、于是,笔者陷入了沉思,也就是睡着了,哈哈,开玩笑,继续谷歌、百度啦,直到发现了下边这句话,
6、皇天不负有心人,哈哈,终于改对啦,谢谢小梦dream,
解决方法 将
training_data, validation_data, test_data = cPickle.load(f)
改为
training_data, validation_data, test_data = cPickle.load(f,encoding=‘bytes’)
分割线
结合上面两位的方案的确能够解决问题,但根据实际情况还是有所区别
其中 cPickle 也已经改为pickle 如下是我修改后的正确代码
import pickle
train, val, test = pickle.load(f, encoding=‘bytes’)
————————————————
版权声明:本文为****博主「一个处女座的程序猿」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.****.net/qq_41185868/article/details/79039604