Tensorflow的BasicLSTMCell内核在here中定义。我想在展开并迭代调用该内核时打印一些激活张量的堆栈。
我尝试了两种选择来实现。
首先,我尝试从tf.nn.bidirectional_dynamic_rnn(使用这些fw / bw BasicLSTMCell)返回这些张量,但是必须进行太多更改,并且要修复太多错误(如果有人做到了,那将很棒)。
第二个选项是将这个张量设置为输出张量,并在会话中但在lstm内核之外调用它。
Tensors = session.run([tf.get_default_graph().get_tensor_by_name("bidirectional_rnn/fw/fw/while/basic_lstm_cell/stack:0")], feed_dict = {
inputs['input']: input_tensor,
inputs['input_lengths']: seq_length,
})
第二个选项给出了错误:
ValueError: Operation 'bidirectional_rnn/fw/fw/while/basic_lstm_cell/stack' has been marked as not fetchable.
还有其他选项可以实际返回或打印这些张量吗?
到目前为止:
1)我使用array_ops.stack来堆叠激活,并使用ops.convert_to_tensor将它们转换为张量。可能可行,但我必须访问堆栈张量以进行验证。
2)我只能访问lstm模块的权重和偏差。