作为Coursera计算机视觉TensorFlow课程的第四次作业的一部分,我的代码在model.fit()
处失败
model.compile(loss='categorical_crossentropy',metrics=['accuracy'],optimizer=tf.keras.optimizers.RMSprop(lr=0.001))
# 在训练前打乱并创建批次
model.fit(train_batches,epochs=25)
出现的错误是:
ValueError: Shapes (None, 1) 和 (None, 2) 不兼容
关于问题可能出在哪里的提示?我怀疑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
,但这只是一个假设,因为我没有代码和架构可以查看;实际上,我99%确定问题出在这里。