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
)
計算目標在 top 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
)
計算整數目標在 top 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)
的張量,包含 top 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()])