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

202 阅读1分钟

问题

运行tensorflow 的resnet网络,预测结果,出现报错

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

原因

解决: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.

修改sparse_categorical_crossentropy为ategorical_crossentropy