Tensorflow 2 中模型metric的设置方法总结
1. 设置方法
以下内容,引用自
Model官方手册
——“
compile
”中
metrics
参数的解释。
1.1
metrics
表示形式
metrics
每个指标可以是一个
字符串
(内置函数的名称)、
函数
或
tf.keras.metrics.Metric
实例
。请参见
tf.keras.metrics
。
-
通常情况下,您会使用
metrics=['accuracy']
(此为
字符串
) -
函数
是任何具有签名的可调用对象
result=fn(y_true,y_pred)
。
1.2
metrics
传值方式
metrics
为了为多输出模型的不同输出指定不同的指标,
-
您也可以传递一个
字典
,例如
metrics={'output_a':'accuracy', 'output_b':['accuracy', 'mse']}
。 -
您还可以传递一个
列表
来指定每个输出的
指标
或
一组指标
,例如
metrics=[['accuracy'], ['accuracy', 'mse']]
或
metrics=['accuracy', ['accuracy', 'mse']]
。
但注意因为每个输出可以有多个指标,所以在传列表的时候就不能直接传一个1维列表,而应该传一个二维列表,但在该二维列表的最后一个轴上的元素个数可以不同。
当您传递字符串
'accuracy'
或
'acc'
时,我们会根据目标和模型输出的形状(
shape
)将其转换为
tf.keras.metrics.BinaryAccuracy
、
tf.keras.metrics.CategoricalAccuracy
、
tf.keras.metrics.SparseCategoricalAccuracy
之一(此为
tf.keras.metrics.Metric
实例
)。对于
字符串
'crossentropy'
和
'ce'
,我们也进行类似的转换。
1.3
metrics
样本加权
metrics
在这里传递的指标是不带样本加权的;如果您希望应用样本加权,您可以通过
weighted_metrics
参数指定您的指标。
2. 例程
更多例程可以参考
-
官方指南:《
使用内置方法进行训练和评估
》——“
将数据传递到多输入、多输出模型
”部分; -
官方指南:《
不平衡数据的分类
》——“
定义模型和指标
”部分。