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

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

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

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加载imdb数据时num_words参数是干嘛的?   1回答

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

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

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

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

keras load_model报错   1回答

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

keras hdf5 從某層輸入數值   1回答

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

keras和tensorflow有什么关系?   3回答

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

keras.models.Sequential()是一种什么模型   2回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!