久しぶりね。

どうかしら。貴方達は元気にしてたかしら? 興味ないけど。

やはり、アウトプットも重要だと、どこかで見かけたから、ブログを再開するわね。 ただし、記事としてまとめるのではなく、あくまで個人の記録としてやっていくから、そこら辺は考慮しなさい。

tensorflow で学習するときにやっぱり model は保存しておきたいじゃない。 そんなときには2通りのやり方があるわ。本質的なものは変わらないけど、callbackで呼び出せるのかどうかが最大の違いね。

1.tf.keras.callbacks.ModelCheckpointを使う方法。 これは主に学習の途中と終了時に保存しておいて、評価とか学習の再開時に呼び出すのに使うわ。

2.model.save()を使う方法。 これはモデルの重みと最適化関数を保存する方法ね。これはモデルの再現を勝手にしてくれるのよ。 アーキテクチャーまで保存されるから、いろいろな用途で使えそうね。

1のやり方から見ていくわ。

#saving 
ckpt = tf.keras.callbacks.ModelCheckpoint(check_point_path, save_weights_only=True, verbose=1, save_best_only=Ture, periods=5)
model.fit(train_data, train_labels, epochs, validation_data, callbacks=[ckpt])

#loading
model.load_weights(check_point_path)

Arguments

-filepath モデルを保存するところ

-save_weights_only フルモデル(最適化関数とアーキテクチャーと重み)

-verbose 結果の出力

-save_best_only vadiation_loss が小さくなったときだけ保存

-periods 何回ごとのepochで保存するのか

2のやり方を見ていくわ

重みだけの保存時

#saving
model.save_weights('path/to/checkpoint')

#loading
model.load_weights('path/to/checkpoint')

モデル全体の保存時

#saving
model.save('path/to/model.h5')

#loading
new_model = tf.keras.models.load_model('path/to/model.h5')