我注意到TensorFlow中有两个关于dropout的API,一个是tf.nn.dropout,另一个是tf.layers.dropout。我只是想知道tf.nn.dropout的目的是什么? 根据{{3}},应该有一个参数来区分训练和测试阶段。我看到tf.layers.dropout提供了正确的行为,为什么另一个函数tf.nn.dropout?任何人有任何想法?感谢。
答案 0 :(得分:0)
tf.layers.dropout在内部使用tf.nn.dropout函数。
如果你只是想使用更高级别的抽象并且不想控制辍学的许多方面,那么tf.nn.dropout可能会有用。
看看api文档: 1)https://www.tensorflow.org/api_docs/python/tf/layers/dropout
2)https://www.tensorflow.org/api_docs/python/tf/nn/dropout
tf.layers.dropout是tf.nn.dropout的包装器,并且tf.layers使用“丢失率”而tf.nn“使用概率来保持输入”的术语略有不同。虽然可以在它们之间建立直接关系。
在tf.layers.dropout中还有一个额外的参数“Training”,它用于控制是否在训练模式(应用丢失)或推理模式下返回输出(返回输入不变)。