Tensorflow2.0 Keras:默认情况下在测试过程中禁用 dropout 吗?

Jon*_*n R 5 python keras tensorflow tensorflow2.0

我想知道在以下模型中,当我调用时是否会禁用 dropoutmodel.evaluate(...).

layers = [tf.keras.layers.Dense(size, activation='relu')
                  for size in (20, 40, 20)]
layers.insert(1, tf.keras.layers.Dropout(0.2))
layers.append(tf.keras.layers.Dense(1, activation="sigmoid"))
model = tf.keras.models.Sequential(layers)
model.compile(
    optimizer=tf.keras.optimizers.Adam(learning_rate=0.0001),
    loss=tf.keras.losses.BinaryCrossentropy())
model.fit(...)
model.evaluate(...) #==> will dropout be deactivated here?
Run Code Online (Sandbox Code Playgroud)

The*_*Hat 4

evaluate是的,在推理 ( / )时始终禁用 dropout predict

  • 感谢您的快速回答,也许这可以在tensorflow2.0的文档中说得更清楚 (2认同)
  • @MatiasValdenegro 如果我错了,请纠正我,但在旧版本的张量流中,您必须通过使用“feed_dict”提供“keep_prop”变量来自行关闭它。这就是为什么我和其他可能习惯旧版 tf 版本的人可能会对此感到困惑。 (2认同)