[英]Error when checking input: expected conv2d_6_input to have 4 dimensions, but got array with shape (270, 50, 50)
[英]Error when checking input: expected conv2d_1_input to have shape (50, 50, 1) but got array with shape (50, 50, 3)
enter code here
classifier = Sequential()
classifier.add(Convolution2D(32, kernel_size=3, input_shape = (50, 50 , 1), activation =
'relu'))
classifier.add(MaxPooling2D(pool_size = (2, 2)))
classifier.add(Convolution2D(32, kernel_size=3, activation = 'relu'))
classifier.add(MaxPooling2D(pool_size = (2, 2)))
classifier.add(Dropout(0.35))
classifier.add(Flatten())
classifier.add(Dense(output_dim = 128, activation = 'relu'))
classifier.add(Dropout(0.04))
classifier.add(Dense(1, activation = 'sigmoid'))
classifier.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])
from keras.preprocessing.image import ImageDataGenerator
train_datagen = ImageDataGenerator(rescale = 1./255,
shear_range = 0.2,
zoom_range = 0.2,
horizontal_flip = True)
validation_datagen = ImageDataGenerator(rescale = 1./255)
training_set = train_datagen.flow_from_directory('/...',
target_size = (50, 50),
batch_size = 32,
class_mode = 'binary')
validation_set = validation_datagen.flow_from_directory('/…..',
target_size = (50, 50),
batch_size = 32,
class_mode = 'binary')
history=classifier.fit_generator(training_set,
samples_per_epoch = 5187,
nb_epoch = 25,
validation_data = validation_set,
nb_val_samples = 1287)
這是我做的簡單的cnn架構。 我使用的圖像是灰度的。
如果我將通道值指定為粗體分類器中指定的 1.add(Convolution2D(32, kernel_size=3, input_shape = (50, 50, 1 ), activation = 'relu'))
我收到錯誤
檢查輸入時出錯:預期 conv2d_1_input 的形狀為 (50, 50, 1) 但得到的數組的形狀為 (50, 50, 3)
但是,如果我使用過濾器大小為 3,我不會收到任何錯誤,但這可能是使用 3 通道處理灰度圖像的邏輯錯誤......請澄清這一點
flow_from_directory
采用color_mode
參數,該參數指定加載的圖像具有的通道數。 如果要使用灰度圖像,則需要指定它(默認為'rgb'
):
train_datagen.flow_from_directory('/...',
color_mode='grayscale', #<<<<<<<<<<<<<<<<<<<<<
target_size = (50, 50),
batch_size = 32,
class_mode = 'binary')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.