首页 > 解决方案 > 尝试训练 RNN 网络时出错。ValueError: 层序贯_20 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=4

问题描述

我是关于训练图像的这个话题的新手。我有两个目录,其中包含手写字符的训练和测试图像。我正在尝试使用 RNN 网络进行训练,但我在 fit_generator 函数上有此错误。

代码如下所示:

train_datagen = ImageDataGenerator(rescale = 1./255,
                                   shear_range = 0.2,
                                   zoom_range = 0.2,
                                   horizontal_flip = True)

test_datagen = ImageDataGenerator(rescale = 1./255)

train_generator = train_datagen.flow_from_directory(
    directory = '/datasets/training',
    target_size = (32,32),
    batch_size = 32,
    class_mode = 'categorical'

)

test_generator = test_datagen.flow_from_directory(
    directory = '/testing',
    target_size = (32,32),
    batch_size = 32,
    class_mode = 'categorical'

)

model = Sequential()
model.add(
    LSTM(32,
        activation='relu',
        input_shape=(32,32))
)
model.add(Dense(1))

model.compile(loss='categorical_crossentropy', optimizer="Adam", metrics=['acc'])

model.fit_generator(train_generator,
                         steps_per_epoch = 16,
                         epochs = 18,
                         validation_data = test_generator,
                         validation_steps = 16)

ValueError: 层序贯_20 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=4。收到的完整形状:(无,无,无,无)

标签: pythontensorflowlstmocrrecurrent-neural-network

解决方案


推荐阅读