loss ='mean_squared_error',相对于categorical_crossentropy或sparse_categorical_crossentropy

时间:2019-09-10 06:27:35

标签: keras softmax

下面是我为数字检测问题创建的模型。

输入为(28,28,1)

输出是0-9之间的分类值

我的Keras模型摘要如下

model = Sequential([InputLayer(X_train[0].shape),

Conv2D(16,kernel_size=(3,3),strides=[1,1],padding='same',kernel_initializer=keras.initializers.glorot_uniform(),name='conv1'),

Activation('relu'),

MaxPool2D(pool_size=(2, 2)),

Conv2D(32,kernel_size=(3,3),strides=[2,2],padding='same',kernel_initializer=keras.initializers.glorot_uniform(),name='conv2'),

Activation('relu'),

Conv2D(64,kernel_size=(3,3),strides=[2,2],padding='same',kernel_initializer=keras.initializers.glorot_uniform(),name='conv3'),

Activation('relu'),

MaxPool2D(pool_size=(2, 2)),

Flatten(),

Dense(10),

Dense(1,activation='softmax')

])

当我用sparse_categorical_crossentropy损失编译我的模型时,拟合函数给出如下错误。

接收到标签值9,该值超出有效范围[0,1)。标签值:9 5 9 7 2 7

当将其编译为具有均值,均方误差的损失时,拟合函数可以工作,但是损失非常高,准确性也很低。我可以理解mean_squared_error给出此类结果的原因,但无法理解sparse_categorical_crossentropy无法正常工作。我该如何解决这个问题?

谢谢/萨钦

我正在尝试创建Keras模型

0 个答案:

没有答案