ValueError:在检查目标时出错:期望activation_81具有形状(1 ),但得到与形状(7,)相同的数组
我使用神经网络对7个类别进行了多类分类,但在这一点上失败了。
cnnhistory=model.fit(x_traincnn,
y_train,
batch_size=16,
epochs=700,
validation_data=(x_testcnn, y_test),
callbacks=[mcp_save, lr_reduce])callbacks=mcp_save,lr_reduce
mcp_save存在
mcp_save = ModelCheckpoint('model/aug_noiseNshift_2class2_np.h5',
save_best_only=True, monitor='val_loss', mode='min')而lr_reduce是
lr_reduce = ReduceLROnPlateau(monitor='val_loss', factor=0.9, patience=20, min_lr=0.000001)7类神经网络稠密(7)的最后一层
model.add(Dense(7))
model.add(Activation('softmax'))
opt = keras.optimizers.SGD(lr=0.0001, momentum=0.0, decay=0.0, nesterov=False)编译模型
model.compile(loss='sparse_categorical_crossentropy', optimizer=opt, metrics=['accuracy', fscore])我已经将具有规范化值的数据集转换为“sparse_categorical_crossentropy”函数,从“分类交叉熵”更改为“损失函数”。没有什么能奏效的,只是将错误从activation_9推到activation_18,从activation_45到activation_54,再到现在的activation_81。但错误仍然存在。
任何帮助都将不胜感激!我对神经网络很陌生。提亚
发布于 2019-12-14 18:24:40
如果标签是数字,这意味着y_train有(samples, 1)形状,您应该使用'sparse_categorical_crossentropy'。
如果您有标签作为一个热编码,这意味着y_train有形状(samples, 7),您应该使用'categorical_crossentropy'。
https://stackoverflow.com/questions/59337896
复制相似问题