【发布时间】:2018-11-13 09:20:13
【问题描述】:
目前我是这样学习的:
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]))
根据我的架构,我在 epoch 93 或 155 获得更好的结果;然后它变得更糟。很明显我的metrics 是错误的。
我如何从每个时期的敏感性和特异性结果中学习?
【问题讨论】:
标签: tensorflow optimization keras deep-learning loss-function