久しぶりね。
どうかしら。貴方達は元気にしてたかしら? 興味ないけど。
やはり、アウトプットも重要だと、どこかで見かけたから、ブログを再開するわね。 ただし、記事としてまとめるのではなく、あくまで個人の記録としてやっていくから、そこら辺は考慮しなさい。
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')