我尝试使用mnist模型进行分类,因此更改数字图像的形状,如(pic_num,size,size,?(我不知道此维度的含义),并使用“categorical_entropy”的损失函数,将一维标签数据更改为单热标签数据
model=Sequential()
model.add(Conv2D(32,kernel_size=(3,3),input_shape=(28,28,1),activation='relu'))
model.add(Conv2D(64,(3,3),activation='relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(128,activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(10,activation='softmax'))
model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])
字符串
这是我的模型和编译器。
当我写这段代码时:
'''
history=model.fit(x_train,y_train,validation_split=0.25,epochs=30,
batch_size=200,verbose=0,callbacks=[early_stopping_callback,checkpointer])
型
错误代码:
~ in categorical_crossentropy
target.shape.assert_is_compatible_with(output.shape)
Shapes (200, 10, 2) and (200, 10) are incompatible
型
我试图改变flatten层的位置,改变训练数据和标签的形状,但这一切都不起作用。
1条答案
按热度按时间9avjhtql1#
您的代码中有几处更正。您可以将此代码用于MNIST:
字符串
输出量:
的数据
最终输出:
测试损耗:0.023950600996613503
测试精度:0.9922000169754028