在pytorch中进行机器学习后,如何计算给定图像属于哪种类型的百分比?
How to calculate the percentage of which kind the given image is after machine learning in pytorch?
我用自定义 vgg 模型和 CIFAR10 数据集训练了我的机器,并用同一数据集中的一些图像进行了测试。
airplane : -16.972412
automobile : -18.719894
bird : -6.989656
cat : -3.8386667
deer : -7.622768
dog : 0.37765026
frog : -8.165334
horse : -7.4519434
sheep : -21.241518
truck : -18.978928
这是我获得测试图像类型值的方法之一。以下是我在上面打印的内容:
kind = ["airplane", "automobile", "bird", "cat", "deer", "dog", "frog", "horse", "sheep", "truck"]
for k in kind:
print(k,": ", output.cpu().detach().numpy()[0][kind.index(k)])
在这里,给定的测试图像是狗是正确的,这是最高值,但我想将每个值打印为百分比,所有值的总和为100。我该怎么做?我使用 pytorch 编写代码。
这些值为logits
,您应该对它们应用softmax
以获得0 - 1
之间的概率值,然后将它们乘以100。
代码段:
pred = output.cpu().detach().numpy()
def softmax(x):
"Function computes the softmax values for the each element in the given numpy array"
return np.exp(x) / np.sum(np.exp(x), axis=0)
def probability(x):
"Function applies softmax for the given logit and returns the classification probability"
return softmax(x) * 100
output_probs = probability(preds)
或者您可以使用 scipy
中的 softmax
函数
from scipy.special import softmax
output_probs = softmax(preds)
我用自定义 vgg 模型和 CIFAR10 数据集训练了我的机器,并用同一数据集中的一些图像进行了测试。
airplane : -16.972412
automobile : -18.719894
bird : -6.989656
cat : -3.8386667
deer : -7.622768
dog : 0.37765026
frog : -8.165334
horse : -7.4519434
sheep : -21.241518
truck : -18.978928
这是我获得测试图像类型值的方法之一。以下是我在上面打印的内容:
kind = ["airplane", "automobile", "bird", "cat", "deer", "dog", "frog", "horse", "sheep", "truck"]
for k in kind:
print(k,": ", output.cpu().detach().numpy()[0][kind.index(k)])
在这里,给定的测试图像是狗是正确的,这是最高值,但我想将每个值打印为百分比,所有值的总和为100。我该怎么做?我使用 pytorch 编写代码。
这些值为logits
,您应该对它们应用softmax
以获得0 - 1
之间的概率值,然后将它们乘以100。
代码段:
pred = output.cpu().detach().numpy()
def softmax(x):
"Function computes the softmax values for the each element in the given numpy array"
return np.exp(x) / np.sum(np.exp(x), axis=0)
def probability(x):
"Function applies softmax for the given logit and returns the classification probability"
return softmax(x) * 100
output_probs = probability(preds)
或者您可以使用 scipy
softmax
函数
from scipy.special import softmax
output_probs = softmax(preds)