我正在使用这里的一些代码:https://github.com/monikkinom/ner-lstm和tensorflow。我认为代码是为较旧版本的tensorflow编写的,我使用的是1.0.0版本。我使用tf_upgrade.py来升级github repos中的model.py,但我仍然收到错误:
output, _, _ = contrib_rnn.bidirectional_rnn(fw_cell, bw_cell,
AttributeError: 'module' object has no attribute 'bidirectional_rnn'
这是在我更改了bidirectional_rnn调用以使用contrib_rnn之后:
from tensorflow.contrib.rnn.python.ops import core_rnn as contrib_rnn
旧电话是
output, _, _ = tf.nn.bidirectional_rnn(fw_cell, bw_cell,
tf.unpack(tf.transpose(self.input_data, perm=[1, 0, 2])),
dtype=tf.float32, sequence_length=self.length)
也不起作用。
我不得不将LSTMCell,DroputWrapper等更改为rnn.LSTMCell,但它们似乎工作正常。这是bidirectional_rnn,我无法弄清楚如何改变。
答案 0 :(得分:0)
也许您可以尝试重新实现双向RNN,只需将其中一个设置参数“go_backwards = True”的两个单向RNN包装成单个类。然后,您还可以控制与输出完成的合并类型。也许看看https://github.com/fchollet/keras/blob/master/keras/layers/wrappers.py中的实现(请参阅课程Bidirectional
)可以帮助您入门。
答案 1 :(得分:0)
在TensorFlow 1.0中,您可以选择两种双向RNN功能: