我可能在這裏錯了,但這裏。 我使用的是post中的代碼。如何使用完整LSTM序列的輸出? tensorflow
具體地,在
outputs, states = rnn.rnn(lstm_cell, _X, initial_state=_istate)
# Linear activation
# Get inner loop last output
return tf.matmul(outputs[-1], _weights['out']) + _biases['out']
上面的代碼的代碼使用多對一預測方案。
我想知道如果我可以使用多對多的方案與此代碼。 並使用所有LSTM單元的輸出來預測類別。 我試圖與
return tf.matmul(outputs, _weights['out']) + _biases['out']
替換最後一行但後來我得到一個錯誤
File "/media/anilil/Data/charm/Cnn/train_lstm_ucf.py", line 165, in <module>
pred = RNN(x, istate, weights, biases,keep_prob)
File "/media/anilil/Data/charm/Cnn/train_lstm_ucf.py", line 163, in RNN
return tf.matmul(outputs, _weights['out']) + _biases['out']
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/math_ops.py", line 938, in matmul
a = ops.convert_to_tensor(a, name="a")
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 529, in convert_to_tensor
ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/constant_op.py", line 178, in _constant_tensor_conversion_function
return constant(v, dtype=dtype, name=name)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/constant_op.py", line 161, in constant
tensor_util.make_tensor_proto(value, dtype=dtype, shape=shape))
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/tensor_util.py", line 319, in make_tensor_proto
_AssertCompatible(values, dtype)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/tensor_util.py", line 256, in _AssertCompatible
raise TypeError("List of Tensors when single Tensor expected")
TypeError: List of Tensors when single Tensor expected
背景信息(非重要)
感謝您的輸入。如果這種方法能產生更好的結果,我不確定自己。
我試圖複製this paper 具體來說就是本文中的activity recognition。
他們所做的是用單個幀訓練一個CNN來預測幀屬於哪個類,然後使用它的密集層特徵來訓練LSTM,從而理解單個幀之間的時間關係並改進識別準確度。
我已經複製了CNN的結果,並獲得了61%的單幀精度(表1:-RGB單幀)精度。
我已經從這個網絡中提取了(fc-6)特徵,並將其作爲LSTM的輸入,但是其準確性提高了〜71.2%,我得到的LSTM精度降低了51%。不知道爲什麼會發生。 (可能他們使用的LSTM模型是不同的我的猜測)
任何想法,以及讚賞以及。
非常高雅的答案!你有沒有試過這個:將所有輸出結合起來進行類別預測?我想知道這實際上可以改善一般的預測性能。 –
我自己並沒有這樣做,但我認識那些把不同時間步調的成績彙總在一起的人,而不是僅僅從最後一步獲得成績,我不相信這會帶來明顯的改善。 無論如何,我認爲在OP案例中,他實際上有一個問題,每個時間步需要一個輸出,所以這不僅僅是他的優化,而是一個需求。 – Ishamael