後讀API DOC,我也無法理解SessionRunHook的使用。例如,SessionRunHook的成員 函數被調用的順序是什麼?是after_create_session -> before_run -> begin -> after_run -> end
? 我找不到詳細的示例教程,有沒有更詳細的解釋?有沒有tf.trian.SessionRunHook的任何教程?
1
A
回答
3
你可以找到一個教程here,有點長,但你能跳建設網絡的一部分。或者你可以根據我的經驗閱讀下面的小小總結。
首先,MonitoredSession
應該被用來代替正常Session
。
SessionRunHook延伸
session.run()
要求MonitoredSession
。
然後一些常見SessionRunHook
類可以發現here。一個簡單的一種是LoggingTensorHook
,但您可能希望進口後添加以下行運行時看到日誌:
tf.logging.set_verbosity(tf.logging.INFO)
或者你有選項來實現自己的SessionRunHook
類。一個簡單的一個是從cifar10 tutorial
class _LoggerHook(tf.train.SessionRunHook):
"""Logs loss and runtime."""
def begin(self):
self._step = -1
self._start_time = time.time()
def before_run(self, run_context):
self._step += 1
return tf.train.SessionRunArgs(loss) # Asks for loss value.
def after_run(self, run_context, run_values):
if self._step % FLAGS.log_frequency == 0:
current_time = time.time()
duration = current_time - self._start_time
self._start_time = current_time
loss_value = run_values.results
examples_per_sec = FLAGS.log_frequency * FLAGS.batch_size/duration
sec_per_batch = float(duration/FLAGS.log_frequency)
format_str = ('%s: step %d, loss = %.2f (%.1f examples/sec; %.3f '
'sec/batch)')
print (format_str % (datetime.now(), self._step, loss_value,
examples_per_sec, sec_per_batch))
loss
其中被定義在類外。這_LoggerHook
使用print
打印信息,同時LoggingTensorHook
使用tf.logging.INFO
。
最後,爲了更好的理解它是如何工作的,執行順序是由僞帶有MonitoredSession
here:
call hooks.begin()
sess = tf.Session()
call hooks.after_create_session()
while not stop is requested: # py code: while not mon_sess.should_stop():
call hooks.before_run()
try:
results = sess.run(merged_fetches, feed_dict=merged_feeds)
except (errors.OutOfRangeError, StopIteration):
break
call hooks.after_run()
call hooks.end()
sess.close()
希望這有助於。
相關問題
- 1. 有沒有Protobuf網的任何教程?
- 2. 有沒有任何opengl cel着色教程(沒有GLAUX)?
- 3. 有沒有人知道Slick 2D lib的任何好的教程?
- 4. 有沒有軟電話/ voip的任何源代碼或教程
- 5. Solr有沒有任何優秀的教程可供選擇?
- 6. 有沒有教程如何使用任何Html.xxxFor?
- 7. 像raywenderlich有沒有任何Restkit 2.0教程?
- 8. 任何有關Authlogic的工作教程?
- 9. 除了apache.org教程以外,有沒有關於Pig UDF的任何有用的教程?
- 10. 沒有jQuery的Three.js教程?
- 11. 有沒有任何PHP面向對象的編程實踐教程?
- 12. 任何教程開始編碼的iOS沒有故事板?
- 13. Cassandra幻影教程:有沒有使用Phantom的基本教程?
- 14. 是否有任何FlockDB教程網站
- 15. 有沒有工作的jbpm3教程?
- 16. 網上有沒有好的UIScrollView教程?
- 17. 有沒有關於GoogleMap v3的教程?
- 18. 有沒有Apache CXF的在線教程?
- 19. ice4j有沒有好的教程?
- 20. 有沒有簡單的PhoneGap教程?
- 21. 有沒有關於giza ++的教程?
- 22. 有沒有什麼好的erlsom教程?
- 23. 有沒有關於如何在Android上編輯圖像的任何教程?
- 24. OSGi教程沒有Eclipse?
- 25. 有沒有不錯的教程 - 如何創建支持多任務的iphone 4.0?
- 26. 有沒有人知道Emacs(基礎)的任何好的視頻教程?
- 27. Google Wave Python教程 - 沒有任何反應
- 28. Angular2 - 在「/」沒有任何其他成分(英雄教程)
- 29. Django教程第3部分 - Index.html沒有做任何事
- 30. 有沒有任何教程,以獲得功能明智的比較在android
感謝詳細的解釋。 – gaussclb