Python学习(四)cPickle的用法
python中有兩個類似的:pickle與cPickle;兩者的關系:“cPickle – A faster pickle”
pickle模塊中的兩個主要函數是dump()和load()。dump()函數接受一個文件句柄和一個數據對象作為參數,把數據對象以特定的格式保存到給定的文件中。當我們使用load()函數從文件中取出已保存的對象時,pickle知道如何恢復這些對象到它們本來的格式。
cPickle可以對任意一種類型的python對象進行序列化操作,比如list,dict,甚至是一個類的對象等。而所謂的序列化,我的粗淺的理解就是為了能夠完整的保存并能夠完全可逆的恢復。在cPickle中,主要有四個函數可以做這一工作,下面使用例子來介紹。
一、dump: 將python對象序列化保存到本地的文件。
>>> import cPickle
>>> data = range(1000)
>>> cPickle.dump(data,open("test\\data.pkl","wb"))
1
2
3
dump函數需要指定兩個參數,第一個是需要序列化的python對象名稱,第二個是本地的文件,需要注意的是,在這里需要使用open函數打開一個文件,并指定“寫”操作。
二、 load:載入本地文件,恢復python對象
>>> data = cPickle.load(open("test\\data.pkl","rb"))
1
同dump一樣,這里需要使用open函數打開本地的一個文件,并指定“讀”操作
三、 dumps:將python對象序列化保存到一個字符串變量中
>>> data_string = cPickle.dumps(data)
1
四、 loads:從字符串變量中載入python對象
>>> data = cPickle.loads(data_string)
1
例子:
# -*- coding: utf-8 -*-
import pickle
# 也可以這樣:
# import cPickle as pickle
obj = {"a": 1, "b": 2, "c": 3}
# 將 obj 持久化保存到文件 tmp.txt 中
pickle.dump(obj, open("tmp.txt", "w"))
# do something else ...
# 從 tmp.txt 中讀取并恢復 obj 對象
obj2 = pickle.load(open("tmp.txt", "r"))
print obj2
1
2
3
4
5
6
7
8
9
10
11
例子:神經網絡中模型參數的保存
if best_accuracy<val_accuracy:
best_accuracy = val_accuracy
cPickle.dump(model,open("./model.pkl","wb"))
---------------------
作者:深度學習思考者
來源:CSDN
原文:https://blog.csdn.net/u010402786/article/details/51161828
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
總結
以上是生活随笔為你收集整理的Python学习(四)cPickle的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器都会学习了,你的神经网络还跑不动?来
- 下一篇: tf.cast用法