На самом деле у меня есть первый опыт работы с проектом компьютерного зрения, и я запускаю свой код и получаю эту ошибку. Фактически я написал один код для color_mode = 'rgb', а другой - для color_mode = 'grayescale' ... когда я запускаю код для RGB в порядке, но для оттенков серого я получил эту ошибку.
глубина ввода должна делиться равномерно на глубину фильтра: 1 против 3 [[{{модель узла / conv1_conv / Conv2D}}]]
Я просто меняю цветовой режим '' '
BATCH_SIZE=32
totalTrain=3980
totalVal=334
TARGET_SIZE=(640,480)
train_datagen = ImageDataGenerator(
rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)
valid_generate = ImageDataGenerator(
rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)
train = train_datagen.flow_from_dataframe(
dataframe=train_df,
directory=t_dir,
x_col="filename",
y_col="class",
target_size=TARGET_SIZE,
color_mode='grayscale',
batch_size=BATCH_SIZE,
class_mode='categorical',
shuffle=True)
validation = valid_generate.flow_from_dataframe(
dataframe=valid_df,
directory=t_dir,
x_col="filename",
y_col="class",
target_size=TARGET_SIZE,
color_mode='grayscale',
batch_size=BATCH_SIZE,
class_mode='categorical',
shuffle=True)
gen = ImageDataGenerator(rescale=1./255)
test = gen.flow_from_directory(
directory=test_path, class_mode="categorical", target_size=TARGET_SIZE,color_mode='grayscale', batch_size=BATCH_SIZE)
base_model = ResNet50(include_top=False, weights='imagenet',
input_shape=(TARGET_SIZE[0], TARGET_SIZE[1], 3))
x = base_model.output
x = GlobalAveragePooling2D(name='avg_pool')(x)
x = Dense(2, activation='softmax', name='probs')(x)
model = Model(base_model.input, x)
model.compile(optimizer=Adam(lr=LEARNING_RATE),
loss='categorical_crossentropy',
metrics=['accuracy'])
print("start training ...")
history = model.fit(train,
steps_per_epoch=totalTrain // BATCH_SIZE,
epochs=EPOCHS,
validation_data=validation,
validation_steps=totalVal//BATCH_SIZE)
' ''