我正在尝试研究 LSTM单元格中的矩阵乘法,我使用的模型是在Tensorflow中实现的百度的DeepSpeech1。但是,当我尝试获取在LSTM单元格中执行乘法运算的矩阵(权重和[输入,h])时,我创建了一个名为sess的interactivesession,并且都使用了" print(Tensor.eval( ))" 和" print(sess.run(args))" ,其中BasicLSTMCell在Tensorflow中声明(rnn_cell_impl.py)。但是,我得到了与下面相同的ValueError。如何获取值?
concat = _quantized_linear([inputs, h], 4 * self._num_units, True,
quantization=self._quantization, fake_quant_weights=self._fake_quant_weights)
matrix = array_ops.concat([inputs, h], 1)
print(matrix.eval())
# i = input_gate, j = new_input, f = forget_gate, o = output_gate
i, j, f, o = array_ops.split(value=concat, num_or_size_splits=4, axis=1)
new_c = (
c * sigmoid(f + self._forget_bias) + sigmoid(i) * self._activation(j))
new_h = self._activation(new_c) * sigmoid(o)
我在网上搜索了很长时间。但没用。请帮助或尝试提供一些如何实现这一点的想法。任何帮助,将不胜感激。 The ValueError Raised
答案 0 :(得分:0)
您无法直接获取tensorflow条件或while循环内创建的张量值。
您的选择是使用static_rnn(它不会创建一个循环)或在循环外调用相同的lstmcell来获取可获取的状态的张量。