2016-08-23 3 views
5

からエポックNUM情報を取得する方法(私が訓練中にこの情報を表示する) I試してみましたは私がトレーニング中にエポックをnum情報を取得することができますどのように</p> <pre><code>filename_queue = tf.train.string_input_producer( files, num_epochs=num_epochs, shuffle=shuffle) </code></pre> <p>のように、string_input_producerを使用してファイルを読み込む場合tf.train.string_input_producer

run 
tf.get_default_graph().get_tensor_by_name('input_train/input_producer/limit_epochs/epochs:0') 

は常に制限エポック数と同じです。

run 
tf.get_default_graph().get_tensor_by_name('input_train/input_producer/limit_epochs/CountUpTo:0') 

たびは

の両方が訓練中に正しいエポックNUMを取得することはできません。.. 1を追加します。

もう1つのことは、既存のモデルをリトレインすれば、すでに訓練されたエポック番号の情報を入手できますか?

+0

関連:http://stackoverflow.com/questions/38899939/tensorflow-how-to-set-learning-rate-decay-based-on-epochs – fwalch

答えて

1

正しいアプローチは、オプティマイザに渡す変数をglobal_stepと定義することです(または手動でインクリメントすることもできます)。

TensorFlow Mechanics 101チュートリアルでは、例を提供します。

global_step = tf.Variable(0, name='global_step', trainable=False) 
train_op = optimizer.minimize(loss, global_step=global_step) 

global_stepは毎回train_opランをインクリメントします。データセットのサイズとバッチサイズを知っているので、現在のエポックを知ることができます。

tf.train.Saver()でモデルを保存すると、global_step変数も保存されます。モデルを復元するときは、global_step.eval()に電話して、中断した箇所のステップ値を戻すことができます。

こちらがお役に立てば幸いです。

+0

私はcifa10が同じ戦略を使用していることを確認していただきありがとうございます。しかし、私はいつもエポックを得ることができると思うし、大規模なデータを訓練するのに便利です。 – allen

関連する問題

 関連する問題