¿Qué semillas deben establecerse en el lugar para obtener una reproducibilidad del 100% de los resultados de entrenamiento en tensorflow?

En una configuración general de tensorflow como

model = construct_model() with tf.Session() as sess: train_model(sess) 

Donde construct_model() contiene la definición del modelo, incluida la inicialización aleatoria de pesos ( tf.truncated_normal ) y train_model(sess) ejecuta el entrenamiento del modelo –

¿Qué semillas tengo que establecer dónde asegurar el 100% de reproducibilidad entre ejecuciones repetidas del fragmento de código anterior? La documentación para tf.random.set_random_seed puede ser concisa, pero me dejó un poco confundido. Lo intenté:

 tf.set_random_seed(1234) model = construct_model() with tf.Session() as sess: train_model(sess) 

Pero obtuve diferentes resultados cada vez.

Una posible razón es que al construir el modelo, hay algunos códigos que utilizan el módulo numpy.random. Así que tal vez puedas intentar establecer la semilla para numpy, también.