complie中的metrics参数
model.compile(...metrics=['accuracy'])
如上,
metrics中有两个arguments,y_true,和y_pred
它所接收的评估指标为,损失函数,(mse等)和准确率(accuracy等),它们都作用于训练集和验证集(eg: loss:..acc..mae .. val_loss:..val_acc..val_mae..),当然该性能的评估结果不会真正用于训练,只用来显示(作为参考)
(每个batch,输出:loss acc mae (后两个就是设置metrics得到),每个epoch(一轮),输出:loss,acc mae … val_loss…val_acc… val_mae)
metrics中的损失函数和准确率函数可由自己改写:
如下:
def top_3_accuracy(y_true,y_pred):
# 返回的函数即为metrics 中支持的函数
return metrics.top_k_categorical_accuracy(y_true,y_pred,k=3)
model.compile(loss='categorical_crossentropy',
optimizer=sgd,
metrics=[metrics.mae,top_3_accuracy])
import keras.backend as K
# 对metrics中的accuracy函数进行重写
def mean_pred(y_true, y_pred):
return K.mean(y_pred)
model.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics=['accuracy', mean_pred])
fit中的callbacks参数:
from keras.callbacks import ModelCheckpoint
model = Sequential()
model.add(Dense(10, input_dim=784, kernel_initializer='uniform'))
model.add(Activation('softmax'))
model.compile(loss='categorical_crossentropy', optimizer='rmsprop')
'''
saves the model weights after each epoch if the validation loss decreased
'''
checkpointer = ModelCheckpoint(filepath='/tmp/weights.hdf5', verb