La pregunta original se refería específicamente a las implementaciones de TensorFlow. Sin embargo, las respuestas son para implementaciones en general. Esta respuesta general también es la respuesta correcta para TensorFlow.
Cuando utilizo la normalización y abandono por lotes en TensorFlow (específicamente usando contrib.layers), ¿debo preocuparme por el pedido?
Parece posible que si utilizo el abandono seguido inmediatamente de la normalización por lotes, podría haber problemas. Por ejemplo, si el cambio en la normalización por lotes se entrena a los números de escala más grandes de las salidas de entrenamiento, pero luego ese mismo cambio se aplica a los números de escala más pequeños (debido a la compensación por tener más salidas) sin abandono durante las pruebas, entonces eso el turno puede estar apagado. ¿La capa de normalización por lotes de TensorFlow lo compensa automáticamente? ¿O esto no sucede por alguna razón que me falta?
Además, ¿hay otras trampas a tener en cuenta al usar estos dos juntos? Por ejemplo, suponiendo que los estoy usando en el orden correcto en lo que respecta a lo anterior (suponiendo que es un orden correcto), podría haber problemas con el uso de tanto la normalización de lotes y la deserción en múltiples capas sucesivas? No veo un problema de inmediato con eso, pero es posible que me esté perdiendo algo.
Muchas gracias!
ACTUALIZAR:
Una prueba experimental parece sugerir que ordenar es importante. Ejecuté la misma red dos veces con solo la norma de lotes y el abandono inverso. Cuando el abandono se produce antes de la norma de lote, la pérdida de validación parece aumentar a medida que disminuye la pérdida de entrenamiento. Ambos caen en el otro caso. Pero en mi caso los movimientos son lentos, por lo que las cosas pueden cambiar después de más entrenamiento y es solo una prueba. Aún así, se agradecería una respuesta más definitiva e informada.