在我添加批量归一化层之前,我的模型的训练准确率为97%,但一旦我添加批量归一化层,我的准确率就下降到了70%。为什么会发生这种情况,以及在进行批量标准化的同时有什么方法可以提高准确性?
model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape=input_shape))
model.add(Activation('relu'))
model.add(BatchNormalization())
model.add(MaxPooling2D(pool_size=(2, 2)))
#first hidden layer
model.add(Conv2D(32, (3, 3)))
model.add(Activation('relu'))
model.add(BatchNormalization())
model.add(MaxPooling2D(pool_size=(2, 2)))
#output layer
model.add(Flatten())
model.add(Dense(64))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(1))
model.add(Activation('sigmoid'))
model.summary()
model_checkpoint = ModelCheckpoint( "model.hdf5", verbose=1, save_best_only=True)
model.compile(loss='binary_crossentropy',
optimizer= 'adam',
metrics=['accuracy'])发布于 2021-03-04 16:26:36
批量标准化并不能保证你的性能会提高。但在某些情况下,它确实工作得很好。
你可以尝试做的一件事是:
提供更接近的平均值和标准差
https://stackoverflow.com/questions/66470994
复制相似问题