我的图像分类模型中 LSTM 层的形状错误

Shape error for LSTM layer in my image classification model

你好,我正在尝试对灰度图像 (​​224x224) 进行分类,我正在尝试为此使用 LSTM,但我不断收到形状错误

我的火车数据生成器如下所示:

def train_datagenerator(train_batchsize):
train_datagen = ImageDataGenerator(
    rescale=1 / 255.0,
    rotation_range=20,
    zoom_range=0.05,
    width_shift_range=0.05,
    height_shift_range=0.05,
    shear_range=0.05,
    horizontal_flip=True,
    fill_mode="nearest")

train_generator = train_datagen.flow_from_directory(train_dir,
                                                    target_size=(image_size, image_size),
                                                    batch_size=train_batchsize,
                                                    class_mode='categorical')
return train_generator

这是我的模型代码:

def LSTM_model():

 model = Sequential()
 model.add(LSTM(512, input_shape=(224, 224)))
 model.add(Flatten())
 model.add(Dense(1024))
 model.add(Activation('relu'))
 model.add(Dense(50))
 model.add(Activation('sigmoid'))
 model.add(Dense(3))  
 model.add(Activation('softmax'))


 model.build()
 model.summary()
 return model 

model.fit

def train(model):
train_generator = train_datagenerator(train_batchsize)
model.compile(loss='categorical_crossentropy',
              #optimizer='sgd',
              optimizer='adam',
              metrics=['acc'])
train_start = time.clock()

print('Started training...')
history = model.fit_generator(train_generator,
                              steps_per_epoch=train_generator.samples / train_generator.batch_size,
                              epochs=epochs,
                              verbose=1)

train_finish = time.clock()
train_time = train_finish - train_start
print('Training completed in {0:.3f} minutes!'.format(train_time / 60))

print('Saving the trained model...')
model.save('/content/drive/My Drive/Project/trained_models/rnn_model.h5')
print("Saved trained model in 'trained_models/ folder'!")

return model, history

我收到此错误:层 lstm_5 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=2。已收到完整形状:[None, 150528]

请帮忙

我不确定,但你能试试这个吗

model.add(LSTM(512, return_sequences=True, input_shape=(224, 224)))