问题
运行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