keras.evaluate()准确性之间的差异e通过预测手动计算的准确性:多标签分类

时间:2020-05-20 16:32:23

标签: keras neural-network predict cnn evaluate

我正在使用keras进行多标签分类。我使用' binary_crossentropy '作为损失函数, metrics = ['accuracy'] ,' sigmoid ”作为激活。

在培训期间,我看到了90%以上的准确性,而且在测试集上使用 evaluate 我也有类似的感觉。 如果我尝试使用 predict 模块手动计算准确度,则训练集上的准确度也会大大降低45%。

这是模型:

model = keras.models.Sequential()

model.add(keras.layers.Conv2D(8, kernel_size=3, strides=2, activation='relu', input_shape=(N_qubits, N_qubits,2)))

model.add(keras.layers.Conv2D(16, kernel_size=2, activation='relu'))
model.add(keras.layers.Dense(64, activation='relu'))
model.add(keras.layers.Dense(128, activation='relu'))
model.add(keras.layers.Conv2D(32, kernel_size=1, activation='relu'))
model.add(keras.layers.GlobalMaxPooling2D())
model.add(keras.layers.Dense(units=y_train.shape[1], activation='sigmoid'))


adam_optimizer = keras.optimizers.adam()

model.compile(loss='binary_crossentropy', optimizer=adam_optimizer, metrics=['accuracy'])


history = model.fit(X_train, y_train, batch_size=150, epochs=1000, verbose=1, validation_split=0.05)

在这里使用评估()

results = model.evaluate(X_test, y_test, batch_size=128)

在这里,当我使用predict()

y_pred_train = model.predict(X_train)
y_pred_test = model.predict(X_test)

0 个答案:

没有答案