Accuracy
classkeras.metrics.Accuracy(name="accuracy", dtype=None)
计算预测值与标签相等的频率.
该指标创建两个局部变量,total
和 count
,用于计算 y_pred
与 y_true
匹配的频率.该频率最终以 binary accuracy
的形式返回:一个简单的操作,将 total
除以 count
.
如果 sample_weight
为 None
,权重默认为 1.使用 sample_weight
为 0 来屏蔽值.
参数: name: (可选) 指标实例的字符串名称. dtype: (可选) 指标结果的数据类型.
示例:
>>> m = keras.metrics.Accuracy()
>>> m.update_state([[1], [2], [3], [4]], [[0], [2], [3], [4]])
>>> m.result()
0.75
>>> m.reset_state()
>>> m.update_state([[1], [2], [3], [4]], [[0], [2], [3], [4]],
... sample_weight=[1, 1, 0, 0])
>>> m.result()
0.5
使用 compile()
API 的示例:
model.compile(optimizer='sgd',
loss='binary_crossentropy',
metrics=[keras.metrics.Accuracy()])
BinaryAccuracy
classkeras.metrics.BinaryAccuracy(name="binary_accuracy", dtype=None, threshold=0.5)
计算预测与二元标签匹配的频率.
该指标创建两个局部变量,total
和 count
,用于计算 y_pred
与 y_true
匹配的频率.该频率最终以 binary accuracy
的形式返回:一个简单的操作,将 total
除以 count
.
如果 sample_weight
为 None
,权重默认为 1.使用 sample_weight
为 0 来屏蔽值.
参数: name: (可选) 指标实例的字符串名称. dtype: (可选) 指标结果的数据类型. threshold: (可选) 表示决定预测值为 1 或 0 的阈值的浮点数.
示例:
>>> m = keras.metrics.BinaryAccuracy()
>>> m.update_state([[1], [1], [0], [0]], [[0.98], [1], [0], [0.6]])
>>> m.result()
0.75
>>> m.reset_state()
>>> m.update_state([[1], [1], [0], [0]], [[0.98], [1], [0], [0.6]],
... sample_weight=[1, 0, 0, 1])
>>> m.result()
0.5
与 compile()
API 一起使用:
model.compile(optimizer='sgd',
loss='binary_crossentropy',
metrics=[keras.metrics.BinaryAccuracy()])
CategoricalAccuracy
classkeras.metrics.CategoricalAccuracy(name="categorical_accuracy", dtype=None)
计算预测与独热标签匹配的频率.
你可以提供类别的logits作为y_pred
,因为logits和概率的argmax是相同的.
该指标创建两个局部变量,total
和count
,用于计算y_pred
与y_true
匹配的频率.该频率最终作为分类准确率
返回:一个简单的操作,将total
除以count
.
y_pred
和y_true
应以概率向量的形式传递,而不是作为标签.如果需要,使用ops.one_hot
将y_true
扩展为向量.
如果sample_weight
为None
,权重默认为1.使用sample_weight
为0来屏蔽值.
参数: name: (可选) 指标实例的字符串名称. dtype: (可选) 指标结果的数据类型.
示例:
>>> m = keras.metrics.CategoricalAccuracy()
>>> m.update_state([[0, 0, 1], [0, 1, 0]], [[0.1, 0.9, 0.8],
... [0.05, 0.95, 0]])
>>> m.result()
0.5
>>> m.reset_state()
>>> m.update_state([[0, 0, 1], [0, 1, 0]], [[0.1, 0.9, 0.8],
... [0.05, 0.95, 0]],
... sample_weight=[0.7, 0.3])
>>> m.result()
0.3
使用compile()
API:
model.compile(optimizer='sgd',
loss='categorical_crossentropy',
metrics=[keras.metrics.CategoricalAccuracy()])
SparseCategoricalAccuracy
classkeras.metrics.SparseCategoricalAccuracy(
name="sparse_categorical_accuracy", dtype=None
)
计算预测与整数标签匹配的频率.
acc = np.dot(sample_weight, np.equal(y_true, np.argmax(y_pred, axis=1))
你可以提供类别的logits作为y_pred
,因为logits和概率的argmax是相同的.
该指标创建两个局部变量,total
和count
,用于计算y_pred
与y_true
匹配的频率.该频率最终作为稀疏分类准确率
返回:一个简单的操作,将total
除以count
.
如果sample_weight
为None
,权重默认为1.
使用sample_weight
为0来屏蔽值.
参数: name: (可选) 指标实例的字符串名称. dtype: (可选) 指标结果的数据类型.
示例:
>>> m = keras.metrics.SparseCategoricalAccuracy()
>>> m.update_state([[2], [1]], [[0.1, 0.6, 0.3], [0.05, 0.95, 0]])
>>> m.result()
0.5
>>> m.reset_state()
>>> m.update_state([[2], [1]], [[0.1, 0.6, 0.3], [0.05, 0.95, 0]],
... sample_weight=[0.7, 0.3])
>>> m.result()
0.3
与compile()
API一起使用:
model.compile(optimizer='sgd',
loss='sparse_categorical_crossentropy',
metrics=[keras.metrics.SparseCategoricalAccuracy()])
TopKCategoricalAccuracy
classkeras.metrics.TopKCategoricalAccuracy(
k=5, name="top_k_categorical_accuracy", dtype=None
)
计算目标在预测结果中位于前 K
的频率.
Arguments
K
个元素的数量.
默认为 5
.示例:
>>> m = keras.metrics.TopKCategoricalAccuracy(k=1)
>>> m.update_state([[0, 0, 1], [0, 1, 0]],
... [[0.1, 0.9, 0.8], [0.05, 0.95, 0]])
>>> m.result()
0.5
>>> m.reset_state()
>>> m.update_state([[0, 0, 1], [0, 1, 0]],
... [[0.1, 0.9, 0.8], [0.05, 0.95, 0]],
... sample_weight=[0.7, 0.3])
>>> m.result()
0.3
使用 compile()
API:
model.compile(optimizer='sgd',
loss='categorical_crossentropy',
metrics=[keras.metrics.TopKCategoricalAccuracy()])
SparseTopKCategoricalAccuracy
classkeras.metrics.SparseTopKCategoricalAccuracy(
k=5, name="sparse_top_k_categorical_accuracy", dtype=None
)
计算整数目标在预测结果中位于前 K
个的频率.
Arguments
K
个元素的数量.
默认为 5
.示例:
>>> m = keras.metrics.SparseTopKCategoricalAccuracy(k=1)
>>> m.update_state([2, 1], [[0.1, 0.9, 0.8], [0.05, 0.95, 0]])
>>> m.result()
0.5
>>> m.reset_state()
>>> m.update_state([2, 1], [[0.1, 0.9, 0.8], [0.05, 0.95, 0]],
... sample_weight=[0.7, 0.3])
>>> m.result()
0.3
使用 compile()
API:
model.compile(optimizer='sgd',
loss='sparse_categorical_crossentropy',
metrics=[keras.metrics.SparseTopKCategoricalAccuracy()])