2016-12-28 57 views
1

我適合具有兩個佔位符的分類器,一個用於我的輸入功能,另一個用於輸出標籤。爲了將數據導入圖表,我將一個ndarray放入feed_dict。如何使用tf.train.Supervisor來評估驗證數據上的模型,而無需手動評估summary_op?只有使用閱讀器而不是feed_dicts纔有可能?在驗證數據上使用tf.train.Supervisor的默認summary_op?

這是我目前的解決方法,在這裏我檢查經過的時間和人工評估summary_op

import time 

import tensorflow as tf 

t = time.time() 
summary_op = tf.summary.merge_all() 
sv = tf.train.Supervisor(logdir="tensorboard/my-run", summary_op=None) 
with sv.managed_session() as sess: 
    for data in training_data: 

     # Fit training data. 
     sess.run(train_op, feed_dict={'input:0': data[0], 'output:0': data[1]}) 

     # Evaluate on validation data. 
     if time.time() - t > 60.0: 
      t = time.time() 
      data = next(validation_data) 
      summary = sess.run(summary_op, feed_dict={'input:0': data[0], 'output:0': data[1]}) 
      sv.summary_computed(sess, summary) 

回答

2

編輯:tf.train.Supervisor可能會被棄用,因此,請不要介意。見this評論。

有一件事稍微清潔劑是使用tf.train.Supervisor.loop代替人工檢查經過的時間。

import tensorflow as tf 

summary_op = tf.summary.merge_all() 
sv = tf.train.Supervisor(logdir="tensorboard/my-run", summary_op=None) 
with sv.managed_session() as sess: 
    sv.loop(60, lambda: sv.summary_computed(sess, sess.run(summary_op, feed_dict=next(validation_data)))) 
    for data in training_data: 
     sess.run(train_op, feed_dict=data) 
+0

不知道更多的人有這個問題:)我轉移到直接使用輸入隊列的批量張量。 – bodokaiser

-1

你可以用你的解決方法。這應該工作。

雪利酒