纠结了不少日子,终于弄明白了新版本tensorflow中的深层递归神经网络的调用方式了,预计文章会很短,不过因为真的纠结了挺久的,所以就不插到之前介绍RNN的文章中去了,权当个纪念(笑)。
在这篇文章中查到的,不过其实报错信息比这个长得多,
解决方式很简单,就是在基本的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的实践了,开搞开搞~~