私はtensorflowでトレーニングジョブを実行し、検証セットで失われる次の曲線を得ました。ネットは6000回目の反復後にオーバーフィットするようになります。ですから、私は過不足する前にモデルを取得したいと思います。訓練終了後Tensorflow:最小の検証エラーでモデルを保存します
train_step = ......
summary = tf.scalar_summary(l1_loss.op.name, l1_loss)
summary_writer = tf.train.SummaryWriter("checkpoint", sess.graph)
saver = tf.train.Saver()
for i in xrange(20000):
batch = get_next_batch(batch_size)
sess.run(train_step, feed_dict = {x: batch.x, y:batch.y})
if (i+1) % 100 == 0:
saver.save(sess, "checkpoint/net", global_step = i+1)
summary_str = sess.run(summary, feed_dict=validation_feed_dict)
summary_writer.add_summary(summary_str, i+1)
summary_writer.flush()
は、保存された唯一の5つのチェックポイント(19600、19700、19800、19900、20000)があります:
私のトレーニングのコードは、以下のようなものです。検証エラーによってテンソルフローをチェックポイントに保存する方法はありますか?
P.S. tf.train.Saver
にはmax_to_keep
という引数があり、すべてのチェックポイントを保存することができます。しかし、それは私が望んでいない(それが唯一の選択肢でない限り)。私は節約者が今までの検証の損失を最小限に抑えてチェックポイントを保持したいと思っています。それは可能ですか?