【发布时间】:2019-04-15 22:25:37
【问题描述】:
我正在使用“入门”文档中提供的 Keras API 关注 TensorFlow basic classification example。我按原样完成了教程,但如果我将损失函数从 sparse_categorical_crossentropy 更改为 categorical_crossentropy,代码如下:
model = keras.Sequential([
keras.layers.Flatten(input_shape=(28, 28)),
keras.layers.Dense(128, activation=tf.nn.relu),
keras.layers.Dense(10, activation=tf.nn.softmax)
])
model.compile(optimizer=tf.train.AdamOptimizer(),
loss='categorical_crossentropy',
metrics=['accuracy'])
model.fit(train_images, train_labels, epochs=5)
在训练/拟合步骤中失败并出现以下错误:
ValueError: Error when checking target: expected dense_1 to have shape (10,) but got array with shape (1,)
关于损失函数的文档并没有深入研究预期的输入和输出。显然这里存在维度问题,但是如果有专家可以给出详细的解释,这个损失函数或任何其他损失函数是什么引起了这个ValueError?
【问题讨论】:
标签: python tensorflow machine-learning keras neural-network