下面是我为数字检测问题创建的模型。
输入为(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模型