TF2.0:ValueError: logits and labels must have the same shape ((?, 1) vs (?,))

报错如题:ValueError: logits and labels must have the same shape ((?, 1) vs (?,))

发现我自己的问题:我在使用CNN进行猫狗数据集训练时,开始训练后报上面的错,根据意思应该是预测与实际标签尺寸(张量尺寸)不统一!

问题所在:我发现在从卷积部分进入到全连接部分时,我使用了一个tf.keras.MaxPooling2D的池化层作为卷积部分的收尾,但是该层的输出竟然不是一维张量!而依据是图片尺寸:(x,y,z)!即问题就出在:进入全连接层的数据并没有进行展平操作(进入Dense的数据必须是1维的,而图片是3维的)!—— tf.keras.MaxPooling2D单纯就是一个池化层!!没有任何展平的含义!

修改:在进入Dense层前加tf.keras.GlobalAveragePooling2D()层 —— 该层其实就是一个展平层!是一个处理图片时比tf.keras.Flatten()效果更好的展平层!

你可能感兴趣的:(TF2.0:ValueError: logits and labels must have the same shape ((?, 1) vs (?,)))