Accuracy 类keras.metrics.Accuracy(name="accuracy", dtype=None)
计算预测值等于标签的频率。
此指标创建两个局部变量 `total` 和 `count`,用于计算 `y_pred` 与 `y_true` 匹配的频率。此频率最终作为 `binary accuracy` 返回:这是一个幂等操作,只需将 `total` 除以 `count` 即可。
如果 sample_weight 为 None,则权重默认为 1。使用 sample_weight 为 0 来屏蔽值。
参数
示例
>>> 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 类keras.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 来屏蔽值。
参数
示例
>>> 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 类keras.metrics.CategoricalAccuracy(name="categorical_accuracy", dtype=None)
计算预测值与 one-hot 编码标签匹配的频率。
您可以将类别的 logits 作为 `y_pred` 提供,因为 logits 和概率的 argmax 相同。
此指标创建两个局部变量 `total` 和 `count`,用于计算 `y_pred` 与 `y_true` 匹配的频率。此频率最终作为 `categorical accuracy` 返回:这是一个幂等操作,只需将 `total` 除以 `count` 即可。
`y_pred` 和 `y_true` 应以概率向量的形式传递,而不是标签。如果需要,请使用 `ops.one_hot` 将 `y_true` 扩展为向量。
如果 sample_weight 为 None,则权重默认为 1。使用 sample_weight 为 0 来屏蔽值。
参数
示例
>>> 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 类keras.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` 匹配的频率。此频率最终作为 `sparse categorical accuracy` 返回:这是一个幂等操作,只需将 `total` 除以 `count` 即可。
如果 sample_weight 为 None,则权重默认为 1。使用 sample_weight 为 0 来屏蔽值。
参数
示例
>>> 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 类keras.metrics.TopKCategoricalAccuracy(
k=5, name="top_k_categorical_accuracy", dtype=None
)
计算目标在预测的前 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 类keras.metrics.SparseTopKCategoricalAccuracy(
k=5, name="sparse_top_k_categorical_accuracy", dtype=None, from_sorted_ids=False
)
计算整数目标在预测的前 K 名中的频率。
默认情况下,`update_state()` 期望的参数是: - `y_true`:一个形状为 `(batch_size,)` 的张量,表示真实类别的索引。 - `y_pred`:一个形状为 `(batch_size, num_categories)` 的张量,包含每个样本在所有可能类别上的分数。
当 `from_sorted_ids=True` 时,`update_state` 期望的参数是: - `y_true`:一个形状为 `(batch_size,)` 的张量,表示真实类别的索引或 ID。 - `y_pred`:一个形状为 `(batch_size, N)` 的张量,包含前 N 个类别按分数从高到低排序的索引或 ID。N 必须大于或等于 k。
当类别数量非常大,并且模型有优化方法可以在不计算分数或不维护所有可能类别的分数的情况下检索到前几名时,`from_sorted_ids=True` 选项可以更有效。
参数
5。False(默认值)时,传递给 `y_pred` 的张量包含所有可能类别的未排序分数。当为 True 时,`y_pred` 包含前几名类别的索引或 ID。示例
>>> 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
>>> m = keras.metrics.SparseTopKCategoricalAccuracy(k=1,
... from_sorted_ids=True)
>>> m.update_state([2, 1], [[1, 0, 3], [1, 2, 3]])
>>> m.result()
0.5
与 compile() API 一起使用
model.compile(optimizer='sgd',
loss='sparse_categorical_crossentropy',
metrics=[keras.metrics.SparseTopKCategoricalAccuracy()])