在另一个问题中,提问者有一个批量归一化层,但在本例中没有。
model.fit(training_data, training_targets, batch_size=16, epochs=1)
Epoch 1/1 33350/33350 [==============================] - 18s - loss: 0.0926 - acc: 0.9703 Out[708]:
model.evaluate(training_data, training_targets)
33248/33350 [============================>.] - ETA: 0s Out[709]: >[0.027722493904928553, 0.99157421289355319]
model = Sequential([
LocallyConnected2D(10, kernel_size=(20, 20), strides=4, padding='valid', activation='relu', input_shape=(50, 110, 1))
, Dropout(0.3), Flatten(), Dense(1, activation='sigmoid')
])
model.compile(loss='binary_crossentropy', optimizer='adam', metrics='accuracy'])
最佳答案
您在进度栏中看到的损失是每批处理损失,而不是在完整训练集中评估。当您使用 model.evaluate 时,您正在评估整个训练集,因此正如预期的那样,损失并不相同。
正如评论中提到的,Dropout 在测试时的评估过程中被禁用,因此它也会影响结果。
关于python - Keras:为什么 model.fit() 返回与 model.evaluate() 相同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45594805/