我不太理解Python中TensorFlow里Hook的确切含义
_LearningRateSetterHook(tf.train.SessionRun**Hook**):
如果您能为我解释一下,我将不胜感激。谢谢
回答:
这可能是一个关于Hook是什么的更普遍的问题。
Hook这个名称非常恰当,因为它允许你“钩入”程序执行的某些点。因此,你可以在代码的某个部分执行后触发一个函数或记录日志。
举个例子,我列出了你提到的SessionRunHook的描述,并附上了其文档的链接。它特别允许你“钩入”提到的点。
SessionRunHook对于跟踪训练、报告进度、请求提前停止等非常有用。SessionRunHook使用观察者模式,并在以下点通知:
- 当会话开始被使用时
- 在调用
session.run()
之前 - 在调用
session.run()
之后 - 当会话关闭时
SessionRunHook封装了一段可重用/可组合的计算,可以附加到MonitoredSession.run()
的调用上。Hook可以向运行调用添加任何操作或张量/馈送,当运行调用成功完成时,Hook可以获取它请求的输出。Hook允许在hook.begin()
中向图中添加操作。在begin()
方法调用之后,图将被最终确定。
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/training/session_run_hook.py