В настоящее время я учусь так:
model.compile(loss=keras.losses.categorical_crossentropy,
optimizer=keras.optimizers.Adadelta(),
metrics=['accuracy'])
model.fit(x_train, y_train,
batch_size=batch_size,
epochs=epochs,
verbose=1,
shuffle='batch',
validation_data=(x_test, y_test),
callbacks=callbacks)
Эти метрики выводятся каждую эпоху, поэтому я знаю, насколько хорошо они работают:
from sklearn.metrics import confusion_matrix
predictions = model.predict(x_test)
y_test = np.argmax(y_test, axis=-1)
predictions = np.argmax(predictions, axis=-1)
c = confusion_matrix(y_test, predictions)
print('Confusion matrix:\n', c)
print('sensitivity', c[0, 0] / (c[0, 1] + c[0, 0]))
print('specificity', c[1, 1] / (c[1, 1] + c[1, 0]))
В зависимости от моей архитектуры,Я получаю лучшие результаты в эпоху 93 или 155;тогда становится хуже.Ясно, что мои metrics
не правы.
Как я могу узнать из результатов чувствительности и специфичности в каждую эпоху?