Por que eu deveria criar um gráfico separado para treinamento e validação no tensorflow?

Estou usando o tensorflow há algum tempo. No começo eu tinha coisas assim:

def myModel(training):
    with tf.scope_variables('model', reuse=not training):
        do model
        return model

training_model = myModel(True)
validation_model = myModel(False)

Principalmente porque comecei com alguns MOOCs que me ensinaram a fazer isso. Mas eles também não usavam TFRecords ou Filas. E não sabia por que estava usando dois modelos separados. Tentei construir apenas um e alimentar os dados com ofeed_dict: tudo funcionou.

Desde que costumo usar apenas um modelo. Minhas entradas são sempre place_holders e eu apenas insiro dados de treinamento ou validação.

Ultimamente, tenho notado um comportamento estranho em modelos que usamtf.layers.dropout etf.layers.batch_normalization. Ambas as funções têm um parâmetro 'training' que eu uso com umtf.bool espaço reservado. Eu vi tf.layers geralmente usados com umtf.estimator.Estimator, mas não estou usando. Eu li o código Estimadores e ele parece criar dois gráficos diferentes para treinamento e validação. Pode ser que esses problemas surjam por não ter dois modelos separados, mas ainda estou cético.

Existe uma razão clara para a qual não estou vendo que implica que dois modelos equivalentes separados devam ser usados?

questionAnswers(2)

yourAnswerToTheQuestion