Keras模型针对同一数据集做fit和evaluation,accuracy值却不相同

  统计/机器学习 人工神经网络 TensorFlow    浏览次数:1965        分享
1

模型是一个很简单的模型:

inputs = Input(shape=(X_train.shape[1],))
nb_x_1 = BatchNormalization()(inputs)
dense_x_1 = Dense(64, activation='relu')(nb_x_1)
nb_x_2 = BatchNormalization()(dense_x_1)
dense_x_2 = Dense(64, activation='relu')(nb_x_2)
predictions = Dense(1, activation='sigmoid')(dense_x_2)

optmzr = keras.optimizers.Adagrad()

model = Model(inputs=inputs, outputs=predictions)
model.compile(optimizer=optmzr,
              loss="binary_crossentropy",
              metrics=['accuracy'])

但针对一个数据集进行fit后(截图只有一个epoch,但之前还经过了多个epoch的fit),显示accuracy是0.98,而立即针对同一数据集做evaluation,显示accuracy只有0.48,loss也从0.12变到了0.75,差别还挺大


我也进行过一些搜索,例如:https://github.com/keras-team/keras/issues/6977   但没有找到什么有价值的答案。


希望高人相助!多谢多谢!

 

macavity   2020-08-04 22:02



   1个回答 
1

BatchNorm() 在evaluation下会被关掉

SofaSofa数据科学社区DS面试题库 DS面经

anlijuncn   2020-08-11 16:07



  相关讨论

keras和tensorflow有什么关系?

keras load_model报错

keras sequential model怎么增加一个dropout层?

keras加载imdb数据时num_words参数是干嘛的?

训练完keras模型后怎么画出loss和val_loss的对比图?

keras无法加载imdb文本:Object arrays cannot be loaded when allow_pickle=False

keras里的predict,predict_classes,predict_proba有什么区别?

怎么在keras中加载MNSIT数据集?

为什么Keras和Pytorch都是把模型保存成h5的格式而不是pkl格式?

keras怎么设置/改动rmsprop的学习率?

  随便看看

python怎么对list中的元素做连乘?

pandas.DataFrame更改列名

numpy.full这个函数有什么用?

在jupyter后台进程没有shutdown的notebook一直会占用内存吗?

matplotlib.pyplot做折线图的时候,显示为虚线,或者点划线?