Tensorflow 为什么批量规范化会降低我的模型训练精度?
在我添加批量标准化层之前,我的模型的训练准确率为97%,但一旦我添加批量标准化层,我的准确率下降到70%。为什么会发生这种情况,以及在批处理规范化的同时有什么方法可以提高准确性Tensorflow 为什么批量规范化会降低我的模型训练精度?,tensorflow,keras,conv-neural-network,batch-normalization,Tensorflow,Keras,Conv Neural Network,Batch Normalization,在我添加批量标准化层之前,我的模型的训练准确率为97%,但一旦我添加批量标准化层,我的准确率下降到70%。为什么会发生这种情况,以及在批处理规范化的同时有什么方法可以提高准确性 model = Sequential() model.add(Conv2D(32, (3, 3), input_shape=input_shape)) model.add(Activation('relu')) model.add(BatchNormalization()) model.a
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'])
批量正常化并不保证性能会提高。但在某些情况下,它确实很有效 您可以尝试做的一件事是: