Keras model.compile可用的有效字符串有哪些?含metrics参数示例
Keras model.compile 可用的有效字符串参数说明
一、优化器(Optimizer)有效字符串
'sgd'、'rmsprop'、'adam'、'adagrad'、'adadelta'、'adamax'、'nadam'、'ftrl'
二、损失函数(Loss)有效字符串
按任务类型划分:
回归任务
'mse'(均方误差)、'mae'(平均绝对误差)、'mape'(平均绝对百分比误差)、'huber'、'logcosh'
分类任务
- 二分类:
'binary_crossentropy' - 多分类(单标签):
'categorical_crossentropy'(需独热编码标签)、'sparse_categorical_crossentropy'(支持整数标签)
其他任务
'ctc'(序列任务用)、'poisson'、'kl_divergence'
三、评估指标(Metrics)有效字符串
这是你问题的核心,直接用'recall'、'precision'报错,是因为这类指标需要匹配任务类型选对应的字符串,具体如下:
通用指标
'accuracy'(或简写'acc'):分类准确率'loss':训练损失值
二分类任务专属
'precision':精确率'recall':召回率'true_positives'、'true_negatives'、'false_positives'、'false_negatives''auc':ROC曲线下面积'binary_accuracy':二分类准确率(和'acc'效果一致)
多分类任务专属
必须带后缀指定计算方式:
- 宏平均:
'precision_macro'、'recall_macro'(各类别指标算术平均) - 微平均:
'precision_micro'、'recall_micro'(全局样本计算) - 加权平均:
'precision_weighted'、'recall_weighted'(按类别样本量加权) 'categorical_accuracy'(独热编码标签用)、'sparse_categorical_accuracy'(整数标签用)
回归任务专属
'mse'、'mae'、'mape'、'cosine_similarity'
关键说明
如果你的模型是多分类场景,直接写'recall'、'precision'会报错——Keras没法判断你要用哪种平均方式,必须选带后缀的版本;如果是二分类场景,只要模型输出是单神经元+sigmoid激活,用'recall'、'precision'就能正常运行。
内容的提问来源于stack exchange,提问作者John Henckel
相关产品推荐
相关产品推荐

