¿Cuáles son los propósitos de ganchos y andamios en TensorFlow?

Soy bastante nuevo en TensorFlow pero compartiré mi comprensión hasta ahora. Los conceptos básicos de nivel inferior de TensorFlow son cosas como gráficos, sesiones, variables y operaciones. Los usas para construir y entrenar un modelo.

Si está ejecutando TensorFlow de una sola máquina, estas primitivas son suficientes. Pero si está utilizando TensorFlow distribuido, el código de su aplicación se ejecutará en varias máquinas a la vez, y escribir el código para coordinar cosas como la creación del modelo, la inicialización del modelo y la recuperación de fallas puede ser muy complicado.

Ganchos y andamios son un par de conceptos de apoyo utilizados por MonitoredTrainingSession. Scaffold intenta deducir de su gráfico lo que debe suceder en estas diversas situaciones. En algunos casos, es posible que deba crear un andamio personalizado para controlar este proceso.

Los ganchos son códigos adicionales que desea ejecutar en cada trabajador o solo en el jefe. Creo que un ejemplo de esto podría ser la preparación de datos de capacitación para alimentar a su modelo.

Este video es una excelente descripción general de TensorFlow distribuido. No discute el andamio, pero discuten los ganchos en el contexto de MonitoredTrainingSession.

Para ganchos, (es decir, `SessionRunHook`), consulte todos los instancias de` SessionRunHook` en esta página de documentación para ver una descripción general rápida de sus propiedades y lo que hacen: Utilidades de capacitación | TensorFlow

y aquí: tensorflow / tensorflow para ejemplos de ganchos

Para `Scaffold`, aquí está la documentación: Ejecución distribuida | TensorFlow