我正在尝试使用CudnnLSTM(tf.contrib.cudnn_rnn.python.layers.CudnnLSTM
)的dropout,我希望能够构建一个图并将dropout设置为一些非零小数值进行训练,然后将dropout设置为0用于测量验证错误指标。使用通常的Tensorflow LSTM单元格(tf.contrib.rnn.LSTMCell
),这并不太难,因为keep_prob
参数接受Tensor
,但我发现这不是CudnnLSTM
的选项。
为了能够设置dropout,我尝试使用全局变量设置dropout,然后在训练和验证之间更改该全局变量的值,但我认为这不起作用(无法证明它但这是我最好的猜测)。特别是我的训练和验证错误大致相同,而在过去当我在RNN中训练时(在同一数据集上),验证往往比训练更快(因为验证已将丢失%设置为0) )。我已经使用了通常的LSTM这样的结果(在相同的数据集上),所以我希望看到与Cudnn
类似的东西。
所以我有两个问题。
Tensor
,那么如何将退出设置为不同的培训和验证? I假设一种方法是建立两个共享权重的图形,但是如果CudnnLSTM
自己的权重而不是传入它们,我该如何做呢?有人能够提供代码示例,因为我找不到一个吗?感谢您的帮助。
答案 0 :(得分:1)
模型调用方法中的training参数部分控制dropout是否生效。如果training = true,则应用dropout;如果training = false,则忽略dropout。
405 Method Not Allowed
我们可以看到x和y都是0,因为dropout设置为1.0。但是w和v都不是零。