我如何解决InvalidArgumentError:输入和过滤器必须具有相同的深度:3 vs 32?

问题描述

我的图像数据大小太小(大约100),因此我使用ImagDataGenerator进行扩充。 我不知道为什么会出错 对于图像分类(4类),我使用卷积。 我认为错误原因是input_shape。 输入vs过滤器-> 3:42是什么意思?如何修复我的代码

model = Sequential()
model.add(Conv2D(32,(3,3) padding = 'same',input_shape=(150,150,3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.25))

...

model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])

batch_size = 16

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(
        'picture/train/makkne',target_size=(150,150),batch_size=batch_size,class_mode='categorical')  

test_generator = test_datagen.flow_from_directory(
        'picture/test/makkne',class_mode='categorical')

model.fit_generator(
        train_generator,steps_per_epoch=15,validation_data=test_generator,epochs=50)
model.save_weights('first_try.h5')  

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)