TensorFlow GradCAM - model.fit() - ValueError: Shapes (None, 1) and (None, 2) are incompatible

TensorFlow GradCAM - model.fit() - ValueError: Shapes (None, 1) and (None, 2) are incompatible

作为 Coursera CV TF 课程作业 4 的一部分,我的代码在 model.fit()

中失败
model.compile(loss='categorical_crossentropy',metrics=
   ['accuracy'],optimizer=tf.keras.optimizers.RMSprop(lr=0.001))
# shuffle and create batches before training

model.fit(train_batches,epochs=25)

有错误:

ValueError: Shapes (None, 1) and (None, 2) are incompatible

关于问题可能来自何处的任何提示?我怀疑 train_batches:

的格式或类型不正确
train_data = tfds.load('cats_vs_dogs', split='train[:80%]', as_supervised=True) 
augmented_training_data = train_data.map(augmentimages)
train_batches = augmented_training_data.batch(32)

虽然我不熟悉架构的确切代码,但我怀疑是这一行:

model.compile(loss='categorical_crossentropy',metrics=
   ['accuracy'],optimizer=tf.keras.optimizers.RMSprop(lr=0.001))

您可能使用 categorical_crossentropy 而不是 binary_crossentropy 进行二进制分类,输出有 1 个神经元,但这只是一个假设,因为我没有代码和架构可供查看;事实上,我 99% 认为问题出在此处。