『TensotFlow』深层循环神经网络

时间:2022-03-10 09:13:34

纠结了不少日子,终于弄明白了新版本tensorflow中的深层递归神经网络的调用方式了,预计文章会很短,不过因为真的纠结了挺久的,所以就不插到之前介绍RNN的文章中去了,权当个纪念(笑)。

在这篇文章中查到的,不过其实报错信息比这个长得多,

ValueError: Attempt to reuse RNNCell <tensorflow.contrib.rnn.python.ops.core_rnn_cell_impl.BasicLSTMCell object at 0x7f1a3c448390> with a different variable scope than its first use.解决方法

解决方式很简单,就是在基本的cell调用部分外加一个封装,原先是这样的,

l_cell = tf.contrib.rnn.BasicLSTMCell(rnn_size,state_is_tuple=True,reuse=tf.get_variable_scope().reuse)
cell = tf.contrib.rnn.MultiRNNCell([lstm_cell() for _ in range(num_layers)])
initial_state = cell.zero_state(batch_size,tf.float32)

  

修改成这样的之后就能用了,

def lstm_cell():
l_cell = tf.contrib.rnn.BasicLSTMCell(rnn_size,state_is_tuple=True,reuse=tf.get_variable_scope().reuse)
return l_cell
cell = tf.contrib.rnn.MultiRNNCell([lstm_cell() for _ in range(num_layers)])
initial_state = cell.zero_state(batch_size,tf.float32)

  

可喜可贺,这样一来就可以考虑一些乱起八糟的nlp的实践了,开搞开搞~~