python 学習済みデータの保存
これは手書き数字のデータを機械学習に与えているものだが下三行で作成した学習データを保存している。
import pickle
with open(ファイル名, オプション) as 変数:
pickle.dump(オブジェクト(学習済みデータ), ファイル名)
pickleモジュール
pickleモジュールを使うことで作成した学習済みデータをデータファイルとして保存することができる。
pickle.dump()で第一引数に学習済みデータのオブジェクトを渡し、第二引数に保存するファイル名を指定している、今回はopen関数でファイルを書き込み用で開いてそのファイルを変数fpに格納しているので変数fpをpickle.dumpの第二引数に指定している。
open関数とwithのついて
withについて
withを行頭につけると何かの処理の開始時と終了時にしなければいけない処理をしてくれる。今回のケースで言えばopen関数でファイルを開いた後に閉じる必要性があるがwithをつけているので自動で閉じてくれる、閉じなければエラーになる。
open関数について
open関数はファイルをオプションを指定して開くための関数。
open(ファイル名, オプション, 文字エンコード)
のように指定する。
オプションでは
・"w" 書き込み用で開く。既に存在しているファイルの場合は上書きする。
・"wb"(write binaryの略) バイナリ形式の書き込み用で開く。既に存在しているファイ ルの場合は上書きする。
・"r" 読み込み用で開く。
・ "rb"(read binaryの略) バイナリ形式の読み込み用で開く。
・"x" 新規ファイルの読み込みに使用する。既にファイルが存在しているとエラーになる。
・"a" 書き込み用で開く。既にファイルが存在していれば末尾に追加されていく。
・"b" バイナリモードで開く。
バイナリ形式とは
バイナリ形式のデータとはテキストデータ以外のデータ。テキストデータは文字だけのデータで簡単に分けると人間が読むことのできるデータがテキストデータで人間ではなくコンピューターが読むことのできるデータがバイナリデータ。バイナリデータは0と1で表現されているデータ。
保存したデータを読み込む場合
import pickle
with open("digits.pkl", "rb") as fp:
clf = pickle.load(fp)
上記で保存した学習データを使用するにはopen関数のオプションで"rb"を指定してファイルを読み込み用で開いて変数に格納。
そして、pickle.load()でファイルを読み込んで変数に格納。
変数clfに保存したデータが格納されている。