我在fashion_mnist数据集上使用给定的代码示例。它包含metrics="accuracy"
并贯穿。每当我将其更改为metrics=tf.keras.metrics.Accuracy()
时,它会给出以下错误:
ValueError: Shapes (32, 10) and (32, 1) are incompatible
我做错了什么?Accuracy()
函数是否不同
import tensorflow as tf
fashion_mnist = tf.keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
train_images = train_images / 255.
test_images = test_images / 255.
model = tf.keras.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation=tf.keras.activations.relu),
tf.keras.layers.Dense(10)])
model.compile(
optimizer=tf.keras.optimizers.Adam(),
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
model.fit(train_images, train_labels, epochs=10)
根据文件here:
因此,当您传递
"accuracy"
时,它将自动转换为SparseCategoricalAccuracy()
因此,您可以按如下方式传递它:
相关问题 更多 >
编程相关推荐