機械学習で、私たちはしばしば大幅に時間を節約し、モデル・トレイン再することなく、直接、意思決定におけるこのモデルを読み出す保存されたモデルを訓練する必要があります。Pythonのpickleモジュールは、この問題に良い解決策を提供し、それは任意のオブジェクトは、一連の操作を行うことができ、オブジェクトをシリアル化してディスクに保存し、必要なときにそれを読むことができます。
pickleモジュールは、最も一般的に使用される機能です。
(1)pickle.dump(OBJ、ファイル、[プロトコル])
ファンクション機能:ファイルに保存されたobjオブジェクトのシリアル化が開かれました。
パラメータの説明:
- OBJ:オブジェクトをシリアル化したいはobj。
- ファイル:ファイル名。
- プロトコル:プロトコルシリアル化で使用されます。これが省略された場合、デフォルトは0です。負またはHIGHEST_PROTOCOL場合は、最上位のプロトコルバージョンを使用しています。
(2)pickle.load(ファイル)
機能機能:読み取りオブジェクトのシリアル化のファイル。
パラメータの説明:
- ファイル:ファイル名。
(3)pickle.dumps(OBJ [プロトコル])
関数function:objがファイルに保存されているのではなく、文字列形式にオブジェクトをシリアライズします。
パラメータの説明:
- OBJ:オブジェクトをシリアル化したいはobj。
- protocal:これが省略された場合、デフォルトは0です。負またはHIGHEST_PROTOCOL場合は、最上位のプロトコルバージョンを使用しています。
(4)pickle.loads(文字列)
ファンクション機能:文字列のシリアライズの正面からオブジェクトobjを読み出します。
パラメータの説明:
- 文字列:ファイル名。
[注](ダンプ)と負荷()比較ダンプ()と負荷()別の機能がある:ダンプ()関数は、同じファイルに格納されたオブジェクトの配列の後にいくつかのいずれかであることができ、その後、コールオブジェクトをデシリアライズするために同じ順序でロードは()を読み出します。
[コード例]
pickleExample.py
#coding:UTF - 8。 __author__ = ' MsLili ' メイン機能モジュール例#pickleアプリケーション インポートピックル データリスト= [ [1 ,. 1、 'はい'。] 、 [ 1 ,. 1、 'はい。] 、 [ 1、0、'。 NO ' ] 、 [ 0 ,. 1、' NO ' ] 、 [ 0 ,. 1、' NO ' ] ] dataDic = { 0:[ 1、2 ,. 3 ,. 4 ] 、 1:('' ' B ' )、 2:{ ' C ':' はい' ' D ':' NO ' }} #利用ダンプ()データファイルシリアライズする FW = オープン(' datafile.txtを' ' WB " ) #ピクルス利用可能な最高使用してプロトコルリスト。 ピクルス。ダンプ(DataListコントロール、FW、- 。1 ) #ピクルス辞書使用プロトコル0 。 ピクルス。ダンプ(dataDic、FW) FW。閉じる() #使用して負荷()の文書からシーケンスのは、データの読み出し FR = オープン(' datafile.txt '、' RB ' ) DATAL =ピクルス。ロード(FR) を印刷DATALを( ) DATA2は=ピクルス。ロード(FR) プリント(DATA2) FRは閉じる() #の使用は、例えば、負荷()(ダンプ)と P = pickle.dumps(データリスト) プリント)(pickle.loads(P) P =pickle.dumps(dataDic) プリント(pickle.loads(P))