gpt4 book ai didi

tensorflow - SessionRunHook 的成员函数被调用的顺序是什么?

转载 作者:行者123 更新时间:2023-12-03 23:02:34 28 4
gpt4 key购买 nike

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

2年前关闭。




Improve this question




看完后API DOC ,我也看不懂SessionRunHook的用法。比如SessionRunHook的成员顺序是什么
要调用的函数?是吗after_create_session -> before_run -> begin -> after_run -> end ?
而且我找不到详细例子的教程,有更详细的解释吗?

最佳答案

您可以找到教程 here ,有点长,但你可以跳过构建网络的部分。或者您可以根据我的经验阅读下面的小摘要。

一、MonitoredSession应该使用而不是正常的 Session .

A SessionRunHook extends session.run() calls for the MonitoredSession.



然后一些常见的 SessionRunHook类可以找到 here .一个简单的就是 LoggingTensorHook但您可能希望在导入后添加以下行,以便在运行时查看日志:

tf.logging.set_verbosity(tf.logging.INFO)

或者您可以选择实现自己的 SessionRunHook类(class)。一个简单的来自 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()

希望这可以帮助。

关于tensorflow - SessionRunHook 的成员函数被调用的顺序是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45532365/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com