ValueError:Shapes...不兼容是使用Tensor时的一个相当普遍的bug,但在我的例子中,它是在使用image_dataset_from_directory方法用Keras训练CNN时。
image_dataset_from_directory
ohtdti5x1#
解决方法是在编译语句中将'categorical_crossentropy'替换为'sparse_categorical_crossentropy'。为什么?根据image_dataset_from_directory文档,'int'是默认的标签编码。因此,默认情况下,'image_dataset_from_directory'将为数据集创建一组标签,这些标签为从1到数据集中的类数的整数。在这种情况下,应该使用“sparse_categorical_crossentropy”损失(而不是“categorical_crossentropy”)编译模型。
1条答案
按热度按时间ohtdti5x1#
解决方法是在编译语句中将'categorical_crossentropy'替换为'sparse_categorical_crossentropy'。
为什么?根据image_dataset_from_directory文档,'int'是默认的标签编码。因此,默认情况下,'image_dataset_from_directory'将为数据集创建一组标签,这些标签为从1到数据集中的类数的整数。
在这种情况下,应该使用“sparse_categorical_crossentropy”损失(而不是“categorical_crossentropy”)编译模型。