首页 > 解决方案 > 训练和推理时 Alpha Dropout 的行为

问题描述

我正在使用 tensorflow实现自归一化神经网络。目前有tf.nn.selutf.contrib.nn.alpha_dropout形式的 tensorflow“原语”,这应该使这个过程变得简单。我的问题是 tf.contrib.nn.alpha_dropout。我期待它有一个布尔开关,用于训练和推理时,就像与其他激活函数一起使用的常用dropout函数一样。在作者最初的实现中,我们确实看到他们在 selu dropout 函数 (dropout_selu) 中有这个布尔开关(训练)。

有什么我想念的吗?

标签: tensorflowneural-networkdeep-learning

解决方案


tf.contrib.nn.alpha_dropout应该被看作是tf.nn.dropout. 后一个函数也没有训练开关的参数。不要与tf.layers.dropout, 包装tf.nn.dropout并有一个training参数相混淆。正如我们在实现中看到的,版本根据开关layers返回结果或标识。以类似的方式定义自己的包装器应该相对容易。nn.dropouttrainingalpha_dropout

为避免任何混淆:layers.dropout最终调用 dropout 的“keras 层”版本,这是上面链接的实现。


推荐阅读