【发布时间】:2017-12-11 23:51:24
【问题描述】:
我正在尝试在 TF 中堆叠 LSTM 单元,这就是我所拥有的:
for layer in xrange(args.num_layers):
cell_fw = tf.contrib.rnn.LSTMCell(args.hidden_size,
initializer=tf.orthogonal_initializer())
cell_bw = tf.contrib.rnn.LSTMCell(args.hidden_size,
initializer=tf.orthogonal_initializer())
cells_fw.append(cell_fw)
cells_bw.append(cell_bw)
output = initial_input
for layer in xrange(args.num_layers):
((output_fw, output_bw), (last_state_fw, first_state_bw)) = tf.nn.bidirectional_dynamic_rnn(
cells_fw[layer], cells_bw[layer], output,
dtype=tf.float32)
output = tf.concat([output_fw, output_bw], axis=-1)
这给了我一个错误:
ValueError: 变量 bidirectional_rnn/fw/lstm_cell/kernel 已经 存在,不允许。您的意思是在 VarScope 中设置 reuse=True 吗?
当我将它设置为 true 时,我得到了
ValueError: 变量 bidirectional_rnn/fw/lstm_cell/kernel 没有 存在,或者不是用 tf.get_variable() 创建的。你的意思是设置 在 VarScope 中重用=None?
有人可以告诉我我做错了什么或正确的方法是什么。
【问题讨论】:
标签: machine-learning tensorflow neural-network lstm rnn