Что означает крюк, используемый в тензорном потоке

Я не мог понять точный смысл Hook в python, tensorflow

_LearningRateSetterHook(tf.train.SessionRun**Hook**):

Буду признателен, если вы объясните мне это. Спасибо вам

Ответ 1

Это может быть более общий вопрос о том, что такое крючки.

Крючки называются соответственно в том смысле, что они позволяют способ "подключиться" к определенным точкам выполнения программы. Таким образом, вы можете запустить функцию или выполнить регистрацию после выполнения определенной части кода.

Чтобы привести пример, я перечислил описание SessionRunHook, которое вы упомянули, и ссылку на его документацию. Это позволяет вам "подключиться" к указанным пунктам.

SessionRunHooks полезны для отслеживания обучения, прогресса в отчетах, раннего запроса остановка и многое другое. SessionRunHooks используют шаблон наблюдателя и уведомляют следующие пункты:

  • при запуске сеанса
  • перед вызовом session.run()
  • после вызова session.run()
  • когда сессия закрыта

SessionRunHook инкапсулирует кусок многоразового/составного вычисления, который может вызвать вызов MonitoredSession.run(). Крючок может добавить любой ops-or-tensor/feeds для вызова вызова, и когда вызов вызова заканчивается с успехом получает запрошенные результаты. Крюкам разрешено добавлять ops к графику в hook.begin(). График завершается после вызова метода begin().

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/training/session_run_hook.py