我正在尝试将DropoutWrapper与LSTMBlockFusedCell一起使用,如下所示:
cell = tf.contrib.rnn.LSTMBlockFusedCell(num_units,forget_bias)
cell = tf.contrib.rnn.DropoutWrapper(cell,dropout)
我得到一个例外,即LSTMBlockFusedCell不是RNNCell
消息:参数单元不是RNNCell。这是在DropoutWrapper初始化期间从_like_rnncell引发的。
正在检查细胞上的那些礼物:
""Checks that a given object is an RNNCell by using duck typing."""
conditions = [hasattr(cell, "output_size"), hasattr(cell, "state_size"),
hasattr(cell, "zero_state"), callable(cell)]
LSTMBlockFusedCell没有output_size,state_size或zero_state属性。
我想知道这是一个错误还是他们将LSTMBlockFusedCell作为RNNCell处理的任何其他原因。
答案 0 :(得分:0)
我为tensorflow打开了一个问题,这似乎是一个bug。 https://github.com/tensorflow/tensorflow/issues/13649
答案 1 :(得分:0)
issue建议在输入时使用tf.nn.dropout
作为解决方法,他们并不打算在LSTMBlockFusedCell
中实施退出或当时修复DropoutWrapper
。但我认为tf.layers.dropout
可能更容易使用,因为它提供了training
参数。