小细节总结

来源:互联网 发布:电脑同时安装软件 编辑:程序博客网 时间:2024/06/05 07:23

存储对象:pickle模块和cPickle模块


cPickle是用C编写的,比pickle运行效率高,cPickle模块中定义的类型不能被继承。推荐使用cPickle。它们的用法基本完全相同。

可以使用下面的语句:

import cPickle as pickle

将内存中的对象转换成为文本流:

picklestring = pickle.dumps(summer)
# 随后使用普通的文本存储方法将picklestring字符串储存在文件

将转换成文件流和存储到文件放到一起:

picklestring = pickle.dump(Bird(), open(‘bird.pkl’, ‘w’))

重建对象:

bird = pickle.load(open(‘bird.pkl’, ‘r’))


遇到的错误


报错信息:
UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0x90 in position 614: ordinal not in range(128)
coding:

import pickle
import gzip
f = gzip.open(‘data/mnist.pkl.gz’, ‘rb’)
training_data, validation_data, test_data = pickle.load(f)

修改为:

training_data, validation_data, test_data = pickle.load(f, encoding=’iso-8859-1’)