HDF5
多分一番よくつかわれるデータ形式だと思います。
非営利のHDF5グループが管理しているデータ形式。
階層バイナリ形式で非常に大規模なデータの保存にも対応できる。
ディープラーニングではモデルそのものやモデルの重みを保存するのに使用されています。
モデルのみを保存できますし、モデルと重みの両方を一度にセーブすることもできる。
#モデルのみセーブする model.save("hoge-model.hdf5") #モデルと重みの両方をセーブ model.save("hoge-modelWeights.hdf5") #モデルをロードする myModel = keras.models.load_model("hoge-model.hdf5") #重みをロード myWeight= keras.model.load_weights("hoge-modelWeights.hdf5")
JSON
JSONはどちらかと言うとWEB界隈でよく使われているデータ形式で別にTF,Kerasだからというわけではないですが、binary形式の
HDF5形式に対しで後でテキストとして読みやすいのでたまに使うことがあります。
ただし、保存できるのはネットワークモデルのみです。
# モデルの保存 model_json = model.to_json() with open("hoge/hoge-model.json","w") as js: js.write(model_json) # モデルの読み込み js = open("hoge/hoeg-model.json", "r") model_json = js.read()
Pickle
PickleはPythonのリストなどをセーブするのにつかわれます。
TF, kerasでは学習の履歴をセーブするのによく使われます。
# historyのセーブ history = model.fit( ) with open('hoge.pkl', 'wb') as hf: pickle.dump(history.history, hf) # historyのロード hf = open('hoge.pkl', 'rb') history = pickle.load(hf)