Die Daten sind 10 Videos zu bauen und jeweils Videos aufgeteilt in 86 Rahmen und jeder Rahmen hat 28 * 28 Pixel,Verwenden Keras (TensorFlow) eine Conv2D + LSTM Modell
video_num = 10
frame_num = 86
pixel_num = 28*28
Ich möchte Conv2D + LSDM verwenden das Modell und an jedem time_steps (= frame_num = 86) senden und die Pixel-Daten (= INPUT_SIZE = 28 * 28) in der model.So folgende ist mein Code über das Modell
BATCH_SIZE = 2 (just try)
TIME_STEPS=frame_num (=86)
INPUT_SIZE=pixel_num (=28*28)
model = Sequential()
model.add(InputLayer(batch_input_shape=(BATCH_SIZE, TIME_STEPS,
INPUT_SIZE)))
print (model.output_shape)
model.add(TimeDistributed(Conv2D(64,(1,3),strides=(1,1), padding='same',
data_format='channels_last'))) ##always the error here
print (model.output_shape)
model.add(TimeDistributed(MaxPooling2D(pool_size=(2,2),padding='same')))
print (model.output_shape)
model.add(TimeDistributed(Conv2D(64,(1,3),strides=(1,1),
data_format='channels_last', padding='same')))
print (model.output_shape)
model.add(TimeDistributed(MaxPooling2D(pool_size=(2,2),padding='same')))
print (model.output_shape)
model.add(TimeDistributed(Flatten()))
print (model.output_shape)
model.add(TimeDistributed(Dense(4096, activation='relu')))
print (model.output_shape)
model.add(LSTM(100, stateful=True, return_sequences=True))
print (model.output_shape)
model.add(Dense(1, activation='sigmoid'))
print (model.output_shape)
die folgende Abbildung zu bauen zeigt den Fehler von der Befehlszeile
https://imgur.com/a/yAPQO sagt „Listenindex außerhalb des zulässigen Bereichs“
Ich denke, dass Fehler über die Eingabeform in TimeDistributed ist(), die die Eingabe von der oberen Schicht wird (InputLayer()), aber ich habe keine Ahnung, wie das beheben Error. Ich habe versucht, die InputLayer(), zu entfernen und
TimeDistributed(Conv2D(...), input_shape=(TIME_STEPS, INPUT_SIZE))
als erste Schicht verwendet werden, sondern auch die gleichen Fehler ...
Wenn jemand über diesen Fehler wissen, geben Sie bitte Ihre Idee teilen, Ich werde sehr dankbar sein. Außerdem habe ich den Unterschied zwischen Batch_input_shape und input_shape noch nicht klar gemacht. Hat jemand diese beiden schon mal benutzt? Danke.
Es funktioniert für mich !! Danke sooo viel! –
Hier habe ich ein anderes Problem, wie meine Eingangsdaten in 5D Form zu machen, die auch die letzte Dimension "Kanal" –
frame_all_train [VIDEO_COUNT] [frame_count] [pixel_height_count] [pixel_width_count] = frame [pixel_height_count, pixel_width_count] Ich kann machen formiere nur ein 4D-Formular mit meinen Daten, ich bin mir nicht sicher, wie ich eine weitere Dimension hinzufügen kann, weil ich nicht weiß, welchen Wert ich in die 5. Dimension legen soll ... –