10エポックごとにモデルを保存するtensorflow.keras v2


10

私はテンソルフローv2のサブモジュールとして定義されたケラスを使用しています。fit_generator()メソッドを使用してモデルをトレーニングしています。10エポックごとにモデルを保存したい。どうすればこれを達成できますか?

Keras(tfのサブモジュールではない)では、を指定できますModelCheckpoint(model_savepath,period=10)。しかし、TF V2に、彼らはこれを変更したModelCheckpoint(model_savepath, save_freq)場所save_freqすることができ'epoch'、その場合、モデルはすべてのエポックを保存されます。save_freqが整数の場合、非常に多くのサンプルが処理された後でモデルが保存されます。しかし、私はそれが10エポックの後であることを望みます。どうすればこれを達成できますか?

回答:


5

tf.keras.callbacks.ModelCheckpointuse を使用save_freq='epoch'して、追加の引数を渡しますperiod=10

これは公式のドキュメントには記載されていませんが、それがその方法です(渡すことができると記載されているがperiod、何が行われるかを説明していないことに注意してください)。


以下の警告が表示されます。WARNING:tensorflow:'period' argument is deprecated. Please use 'save_freq' to specify the frequency in number of samples seen.つまり、この機能はまもなく終了します。その場合、どうすればこれを達成できますか?
Nagabhushan SN

2
唯一の代替策は、エポックごとの例の数を計算し、その整数をsave_freq、保存する間隔として必要なエポックの数に
掛ける

@bluesummers「エポックごとの例」これは私のバッチサイズであるはずですよね?
Tom

エポックごとの例は、チェックポイント間のネットワークを通過するサンプル数です。つまり、100サンプル(サンプル!=バッチ、バッチはサンプルのバッチ)で400を置くと、4エポックごとに保存されます
ブルーサマー

1
@NagabhushanSNが尋ねたのと同じ質問がありました。エポックあたりのサンプル数を計算してサンプル数を計算した後、モデルを保存したいのですが、機能していないようです。バッチサイズ= 64、テストケースでは、エポックごとに10ステップを使用しています。3エポックごとにモデルを保存する場合、サンプル数は64 * 10 * 3 = 1920です。私はsav_freqにそれを使用していますが、出力はモデルがエポック1、エポック2、エポック9、エポック11、エポック14に保存され、まだ実行中であることを示しています。それを理解することはできません。periodオプションは正常に機能しているようですが、廃止されるというメッセージが表示されます。
beeprogrammer
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.