機械学習 Tips

pythonを使って機械学習やJupyterを操作している時に便利だと感じた事をメモしていきます。
オブジェクト(モデル)の保存
JupyterでKerasなどでモデルを学習させてmodel.saveでh5形式で保存させると思いますが、h5形式で保存した場合accやlossを取り出す方法がよくわからなかったので、model.fitしたhistoryをまるごと保存したいと思います。その時のメモ書きです。
pickleで保存
保存
# 保存
import pickle
# 保存する名前を指定
with open('ファイル名', 'wb') as f:
# 対象オブジェクトを指定
pickle.dump(オブジェクト名, f)
読込
# 読込
import pickle
# 読込むファイル名を指定
with open('ファイル名', 'rb') as f:
# 対象オブジェクトを指定
オブジェクト名 = pickle.load(f)
注意
エラーが出る時があります。
TypeError: can't pickle _thread.RLock objects
この場合はjsonで保存してみましょう。
jsonで保存
model.fitしたhistoryをそのまま保存はできないのでhistory.history(dict型)を保存します。
保存
# jsonで保存
import json
# 保存する名前を指定
with open('ファイル名.json', 'w') as f:
json.dump(history.history, f)
読込
# jsonで読込
import json
# 読込むファイル名を指定
with open('ファイル名.json', 'r') as f:
復元させる変数名 = json.load(f)