Logits 和 Labels 必须具有相同的形状:Tensorflow

问题描述

我正在尝试使用 CNN 网络对猫和狗进行分类,但是尽管检查了两次,我还是无法找到错误发生的地方。根据我的说法,损失函数和形状是有序的,但我仍然无法找到错误的来源

!unzip cats_and_dogs.zip
PATH = 'cats_and_dogs'
train_dir = os.path.join(PATH,'train')
train_image_generator = ImageDataGenerator(rescale=1./255)

train_data_gen = train_image_generator.flow_from_directory(batch_size=batch_size,directory=train_dir,target_size=(IMG_HEIGHT,IMG_WIDTH),class_mode='binary')
augmented_images = [train_data_gen[0][0][0] for i in range(5)]
plotimages(augmented_images)

model = Sequential()
model.add(Conv2D(25,kernel_size=3,input_shape=(IMG_HEIGHT,IMG_WIDTH,3),activation="relu"))
model.add(MaxPooling2D())
model.add(Conv2D(25,activation="relu"))
model.add(Dense(64,activation="relu"))
model.add(Dense(1,activation="sigmoid"))
model.summary()

model.compile(optimizer="adam",metrics=['accuracy'],loss='binary_crossentropy')
history = model.fit_generator(train_data_gen)

我遇到的错误

ValueError: logits and labels must have the same shape ((None,15,1) vs (None,1))

解决方法

在将 Tensor 流到 Dense 层之前,我忘记将其展平