Tensorflow Keras形状不匹配

问题描述 投票:0回答:1

[当尝试实现许多教程用来向您介绍神经网络的标准MNIST数字识别器时,我遇到了错误

ValueError: Shape mismatch: The shape of labels (received (1,)) should equal the shape of logits except for the last dimension (received (28, 10)).

我想使用from_tensor_slices处理数据,因为我想将代码应用于数据来自CSV文件的另一个问题。无论如何,这是在model.fit(...)

行中产生错误的代码
import tensorflow as tf

train_dataset, test_dataset = tf.keras.datasets.mnist.load_data()
train_images, train_labels = train_dataset
train_images = train_images/255.0
train_dataset_tensor = tf.data.Dataset.from_tensor_slices((train_images, train_labels))

num_of_validation_data = 10000
validation_data = train_dataset_tensor.take(num_of_validation_data)
train_data = train_dataset_tensor.skip(num_of_validation_data)

model = tf.keras.Sequential([
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(100, activation='sigmoid'),
    tf.keras.layers.Dense(10, activation='softmax')
])

model.compile(
    optimizer=tf.keras.optimizers.Adam(learning_rate=1e-3), 
    loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
    metrics=['accuracy']
)

model.fit(train_data, batch_size=50, epochs=5)

performance = model.evaluate(validation_data)

我不知道logit的形状(28, 10)来自何处,我以为我是将图像展平,实际上是从2D图像中制作出1D向量?如何防止错误?

tensorflow keras training-data mnist
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.