【发布时间】:2021-08-01 12:43:15
【问题描述】:
我正在创建一个用于图像分类的神经网络,我有以下类:
[class1, class2, class3]
我有一个基于 VGG 的模型,模型的最后一层修改如下:
predictions = layers.Dense(int(len(['class1', 'class2', 'class3'])), activation='softmax')(x)
然后我编译模型如下:
model.compile(loss='categorical_crossentropy', optimizer=Adam(), metrics=['accuracy'])
然后我根据输入图像来预测类:
img = load_img(input_path, target_size=(224, 224))
img = np.asarray(img) / 255.
img = cv2.resize(img, (224, 224))
img = img.reshape(1, 224, 224, 3)
prediction = model.predict(img)
但是,它确实作为一种预测回到了我的脑海:
[[5.7733614e-29 2.5203591e-28 3.1751932e-38]]
我想了解这个数据的含义以及如何将其解释为百分比,这样我就可以说 class1 是 59%,class2 是 20%,class3 是 21%。
我的意思是,我希望输出是这样的:
[[0.59 0.20 0.21]]
是我做错了什么,还是我只是不正确地处理数据?
非常感谢。
【问题讨论】:
-
如果使用 softmax 激活,这些值的总和应该为 1,您确定这些值是由正确的模型生成的吗?
标签: tensorflow machine-learning computer-vision image-classification