成功解决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中已经被毙掉了被替换为

import importlib
importlib.reload(sys)

并且,Python 3默认是utf8编码格式,我了各种去,心里一万只草泥马,同样是python,python2和python3咋就差别这么大呢!还要自行车?要啥自行车,啊啊啊!

5、于是,笔者陷入了沉思,也就是睡着了,哈哈,开玩笑,继续谷歌、百度啦,直到发现了下边这句话,

6、皇天不负有心人,哈哈,终于改对啦,谢谢小梦dream,感谢小梦这位仁兄

将
training_data, validation_data, test_data = cPickle.load(f)

改为
training_data, validation_data, test_data = cPickle.load(f,encoding='bytes')

即可!

7、哈哈,成功!搞定!努力总是又收获的,继续努力啦!

解决方法

training_data, validation_data, test_data = cPickle.load(f)

改为

training_data, validation_data, test_data = cPickle.load(f,encoding='bytes')

哈哈,大功告成!

(0)

相关推荐