En aplicaciones pequeñas, estructurar su código en clases no es necesario y puede complicar innecesariamente el código y hacer que las piezas sean más difíciles de reutilizar en otros lugares. Sin embargo, para proyectos más grandes, estructurar su código TensorFlow en clases puede ser valioso, y hay varias formas de hacerlo.
Lo más probable es que desee tener el código de su modelo en una o más clases separadas del código de entrenamiento. A menudo utilizo una función simple para el entrenamiento, que llama a subfunciones para inicializar variables o restaurar un punto de control, crear escritores de resumen, lanzar hilos de ejecución de cola e iteraciones permanentes de entrenamiento y evaluación.
Para estructurar su modelo, tiene sentido separar subgráficos lógicos de su cálculo, como la red hasta los logits, la predicción, la pérdida de tareas, las pérdidas de regularización y el paso de optimización a los métodos. Como solo desea crear esas subgrafías una vez, puede envolver los métodos en un decorador que almacena en caché los resultados.
- ¿Qué tan cerca estamos del punto donde los radiólogos serán reemplazados por software de reconocimiento de imágenes / redes neuronales / IA?
- En Batch Normalization, ¿por qué se deben actualizar moving_mean y moving_variance?
- ¿Cuántas personas en el mundo son expertos en aprendizaje profundo para visión por computadora?
- ¿Quiénes son los profesores que trabajan en biología computacional utilizando el aprendizaje automático inspirado en bio como las redes neuronales?
- ¿Cuándo debo usar la asignación de Dirichlet latente en la minería de texto? ¿Es bueno usarlo para un sistema que requiere alta precisión, como un sistema de detección de fraude?
Aquí está mi publicación de blog que contiene una buena manera de implementar tal comportamiento y algunos pensamientos adicionales: Estructurando sus modelos de TensorFlow.