機械学習 Tips

2020年11月12日

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)

機械学習Jupyter

Posted by Bright_Noah