web-dev-qa-db-ja.com

テンソルフローで使用されるフックの意味は何ですか

Python、テンソルフローでのフックの正確な意味を理解できませんでした

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

ご説明いただければ幸いです。ありがとうございました

14
Soulduck

これは、フックとは何かについてのより一般的な質問である可能性があります。

フックは、プログラムの実行の特定のポイントに「フック」する方法を可能にするという意味で適切に名前が付けられています。したがって、コードの特定の部分が実行された後で、関数またはロギングをトリガーできます。

例として、あなたが言及したSessionRunHookの説明とそのドキュメントへのリンクをリストしました。具体的には、言及されたポイントに「フック」することができます。

SessionRunHooksは、トレーニングの追跡、進捗状況のレポート、早期停止のリクエストなどに役立ちます。 SessionRunHooksはオブザーバーパターンを使用し、次の時点で通知します。

  • セッションが使用され始めたとき
  • session.run()を呼び出す前
  • session.run()の呼び出し後
  • セッションが終了したとき

SessionRunHookは、MonitoredSession.run()への呼び出しを便乗させることができる再利用可能/合成可能な計算の一部をカプセル化します。フックは実行呼び出しにops-or-tensor/feedsを追加でき、実行呼び出しが正常に終了すると、要求された出力を取得します。フックはhook.begin()のグラフに操作を追加できます。グラフは、begin()メソッドが呼び出された後に確定されます。

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

17
Lucas Hendren