1. 评价函数的用法
评价函数用于评估当前训练模型的性能。当模型编译后(compile),评价函数应该作为
metrics
的参数来输入。model.compile(loss='mean_squared_error', optimizer='sgd', metrics=['mae', 'acc']) # 这就是评价函数,或者说评价指标# 或者是from keras import metricsmodel.compile(loss='mean_squared_error', optimizer='sgd', metrics=[metrics.mae, metrics.categorical_accuracy])
评价函数和 相似,只不过评价函数的结果不会用于训练过程中。我们可以传递已有的评价函数名称,或者传递一个自定义的 Theano/TensorFlow 函数来使用(查阅)。
2. keras内置的评价函数
- binary_accuracy (二分类的准确率)
- categorical_accuracy (多分类的准确率)
- sparse_categorical_accuracy
- top_k_categorical_accuracy
- sparse_top_k_categorical_accuracy
3. 自定义评价函数
自定义评价函数应该在编译的时候(compile)传递进去。该函数需要以
(y_true, y_pred)
作为输入参数,并返回一个张量作为输出结果。import keras.backend as Kdef mean_pred(y_true, y_pred): return K.mean(y_pred)model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['accuracy', mean_pred])