深度学习中TOP-1 和TOP-5 分别表示什么意思?

在深度学习过程中,会经常看见各成熟网络模型在ImageNet上的Top-1准确率和Top-5准确率的介绍,但是,究竟TOP-1 和TOP-5是什么意思呢?我们直接来看:
所谓的Top-1 (Accuracy)是指排名第一的类别实际结果相符的准确率,
而Top-5 (Accuracy)是指排名前五的类别包含实际结果的准确率。
阅读下面代码,或许能更充分的理解:

import numpy as np
import tensorflow.keras.backend as K

# 随机输出数字0~9的概率分布
output = K.random_uniform_variable(shape=(1, 10), low=0, high=1)
# 实际结果假设为数字1
actual_pos = K.variable(np.array([1]), dtype='int32')
print("数字0~9的预测概率分布为:", K.eval(output))
print("实际结果为数字:", K.eval(actual_pos))
print("实际结果是否in top 1: ", K.eval(K.in_top_k(output, actual_pos, 1)))
print("实际结果是否in top 5: ", K.eval(K.in_top_k(output, actual_pos, 5)))
数字0~9的预测概率分布为: [[0.301023   0.8182187  0.71007144 0.80164504 0.7268218  0.58599055 0.19250274 0.9076816  0.8101771  0.49439466]]
实际结果为数字: [1]
实际结果是否in top 1:  [False]
实际结果是否in top 5:  [ True]

从结果上看,在output中排名最高的值为0.9076816,其对应的数字为7,而我们实际的数字为1,故不是Top1,而数字1对应的值为0.8182187,排名第二,故在Top5内。

你可能感兴趣的:(科研日常,笔记,深度学习,python,人工智能)