【发布时间】:2018-08-15 17:59:18
【问题描述】:
我已经使用 tensorflow 有一段时间了。起初我有这样的东西:
def myModel(training):
with tf.scope_variables('model', reuse=not training):
do model
return model
training_model = myModel(True)
validation_model = myModel(False)
主要是因为我从一些强迫我这样做的 MOOC 开始。但他们也没有使用 TFRecords 或队列。而且我不知道为什么要使用两个独立的模型。我尝试只构建一个并使用feed_dict 提供数据:一切正常。
自从我通常只使用一种模型以来。我的输入总是占位符,我只输入训练或验证数据。
最近,我注意到使用 tf.layers.dropout 和 tf.layers.batch_normalization 的模型有一些奇怪的行为。这两个函数都有一个“培训”参数,我将其与tf.bool 占位符一起使用。我见过 tf.layers 通常与 tf.estimator.Estimator 一起使用,但我没有使用它。我已经阅读了 Estimators 代码,它似乎为训练和验证创建了两个不同的图表。可能是这些问题是由于没有两个独立的模型引起的,但我仍然持怀疑态度。
是否有一个我没有看到的明确原因意味着必须使用两个独立的等效模型?
【问题讨论】:
标签: python tensorflow machine-learning cross-validation tensorflow-estimator