Я настраиваю модель keras со слоями Conv2D и LSTM и пробую следующий код ... Я пытаюсь не изменять форму слоя LSTM, но также выдает ошибку, что индекс находится вне диапазона. Я много искал, но я не мог понять, где проблема или как ее исправить
Изображения, которые являются входом для модели CNN: 128 * 128
Я обновил свой код
num_steps = 50
lats = 128
lons = 128
features = 4
out_feats = 3
model = Sequential()
model.add(TimeDistributed(Conv2D(16, (3, 3), activation='relu', padding='same'),
input_shape=(1,128, 128, 3)))
model.add(TimeDistributed(MaxPooling2D(pool_size=(2, 2))))
model.add(TimeDistributed(Conv2D(32, (3, 3), activation='relu', padding='same')))
model.add(TimeDistributed(MaxPooling2D(pool_size=(2, 2))))
model.add(TimeDistributed(Conv2D(32, (3, 3), activation='relu', padding='same')))
model.add(TimeDistributed(MaxPooling2D(pool_size=(2, 2))))
model.add(TimeDistributed(Flatten()))
model.add(LSTM(units=64, return_sequences=True))
model.add(TimeDistributed(Reshape((8, 8, 1))))
model.add(TimeDistributed(UpSampling2D((2,2))))
model.add(TimeDistributed(Conv2D(32, (3,3), activation='relu', padding='same')))
model.add(TimeDistributed(UpSampling2D((2,2))))
model.add(TimeDistributed(Conv2D(32, (3,3), activation='relu', padding='same')))
model.add(TimeDistributed(UpSampling2D((2,2))))
model.add(TimeDistributed(Conv2D(16, (3,3), activation='relu', padding='same')))
model.add(TimeDistributed(UpSampling2D((2,2))))
model.add(TimeDistributed(Conv2D(out_feats, (3,3), padding='same')))
model.compile(optimizer='adadelta', loss='categorical_crossentropy', metrics=['accuracy'])
model.summary()
X_data = np.array(X_data)
X_datatest = np.array(X_datatest)
hist=model.fit(X_data, X_data,epochs=15,batch_size=128,verbose = 2,validation_data=(X_datatest, X_datatest))
но это дает мне следующую ошибку
Traceback (последний вызов был последним): File
«C: \ Users \ bdyssm \ Desktop \ Master \ LSTMCNN2.py», строка 107, в
Файл hist = model.fit (X_data, X_data, epochs = 15, batch_size = 128, verbose = 2, validation_data = (X_datatest, X_datatest))
"C: \ Users \ bdyssm \ AppData \ Local \ Programs \ Python \ Python35 \ Lib \ сайт-пакеты \ keras \ двигатель \ training.py",
линия 952, в форме
batch_size = batch_size) Файл "C: \ Users \ bdyssm \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ site-packages \ keras \ engine \ training.py",
строка 751, в _standardize_user_data
exception_prefix = 'input') Файл "C: \ Users \ bdyssm \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ site-packages \ keras \ engine \ training_utils.py",
строка 128, в standardize_input_data
'with shape' + str (data_shape)) ValueError: Ошибка при проверке ввода: ожидалось, что time_distributed_1_input будет иметь 5 измерений, но получено
массив с формой (2892, 128, 128, 3)
Это сводка модели
