1. 评价函数的用法

  1. 评价函数用于评估当前训练模型的性能。当模型编译后(compile),评价函数应该作为 metrics的参数来输入。

    model.compile(loss='mean_squared_error',
                  optimizer='sgd',
                  metrics=['mae', 'acc']) # 这就是评价函数,或者说评价指标
    
    # 或者是
    from keras import metrics
    model.compile(loss='mean_squared_error',
                  optimizer='sgd',
                  metrics=[metrics.mae, metrics.categorical_accuracy])
    
  2. 评价函数和 损失函数 相似,只不过评价函数的结果不会用于训练过程中。我们可以传递已有的评价函数名称,或者传递一个自定义的 Theano/TensorFlow 函数来使用(查阅自定义评价函数)。

2. keras内置的评价函数

  1. binary_accuracy (二分类的准确率)
  2. categorical_accuracy (多分类的准确率)
  3. sparse_categorical_accuracy
  4. top_k_categorical_accuracy
  5. sparse_top_k_categorical_accuracy

3. 自定义评价函数

  • 自定义评价函数应该在编译的时候(compile)传递进去。该函数需要以 (y_true, y_pred) 作为输入参数,并返回一个张量作为输出结果。

    import keras.backend as K
    
    def mean_pred(y_true, y_pred):
        return K.mean(y_pred)
    
    model.compile(optimizer='rmsprop',
                  loss='binary_crossentropy',
                  metrics=['accuracy', mean_pred])