ValueError: Shape mismatch: The shape of labels (received (768,)) should equal the shape of logits e

tensorflow2.0 error

ValueError: Shape mismatch: The shape of labels (received (768,)) should equal the shape of logits except for the last dimension (received (32, 24)).

原因
解决:use of sparse_softmax_cross_entropy. feed it one hot encoded labels which it doesn’t want.

Switch to just normal softmax_cross_entropy and see if that works.
这个问题是由于输出层的类别数和训练数据shape不同导致。
在训练模型时,一般会将label使用one hot编码,然后模型的loss使用交叉熵:

**解决方法:
Use this crossentropy loss function when there are two or more label classes. We expect labels to be provided in a one_hot representation. If you want to provide labels as integers, please use SparseCategoricalCrossentropy loss. There should be # classes floating point values per feature.

Usage:
cce = tf.keras.losses.CategoricalCrossentropy()
loss = cce(
[[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]],
[[.9, .05, .05], [.05, .89, .06], [.05, .01, .94]])
print('Loss: ', loss.numpy()) # Loss: 0.0945

你可能感兴趣的:(pandas的使用,tensorflow,pytorch)