Я работаю над классификацией видео и пытаюсь использовать Conv + LSTM.Эта проблема также является проблемой «многие к одному», которая предсказывает метку Y на основе нескольких кадров в одном видео.
Но код не работает, и форма вывода данных не та, которую я думаюбудет иметь.
X является входом и имеет 15 кадров в одном видео.Один кадр - 240 * 320 * 1.
self.X = tf.placeholder(tf.float32, [None, 15, 240, 320, 1])
self.y = tf.placeholder(tf.int64, [None])
def Net(self, X):
convlstm_layer= tf.contrib.rnn.ConvLSTMCell(
conv_ndims=2,
input_shape=[240, 320, 1],
output_channels=1,
kernel_shape=[2,2],
use_bias=True,
skip_connection=False,
forget_bias=1.0,
initializers=None,
name="conv_lstm_cell")
initial_state = convlstm_layer.zero_state(self.args.batch_size, dtype=tf.float32)
#self.args.batch_size==64
outputs,_=tf.nn.dynamic_rnn(convlstm_layer,X,initial_state=initial_state, time_major=False,dtype="float32")
y_out = outputs[-1]
return y_out
. Выходная форма выходов (64, 15, 240, 320, 1).Но я думаю, что это должно быть (64,15) Выходная форма y_out (15, 240, 320, 1).Но я думаю, что это должно быть (64,1).y_out должен выводить только один прогноз.
Спасибо,