【发布时间】:2022-11-21 12:51:54
【问题描述】:
我训练了 CNN 模型来对 35 个人的图像进行分类。为了测试经过训练的 CNN 模型,我使用了 70 张图像(每个人 2 张)。编写了以下 for 循环来预测 70 张图像的概率。
我需要将 70 张图像 (70 * 35) 的预测概率分配给 ndarray predicted_probabilities。
actual_values_images = []
predicted_values_images = []
predicted_probabilities = np.empty((70, 35), int)
for testImage in test_image_folder:
img = folder_path+str(testImage)
img = image.load_img(img, target_size=(64, 64))
img = image.img_to_array(img)
img = np.expand_dims(img, axis=0)
result=classifier.predict(img,verbose=0)
actual_values_images.append(str(testImage[1:-4]))
predicted_probabilities = numpy.vstack([predicted_probabilities, result])
predicted_values_images.append(ResultMap[np.argmax(result)])
predicted_probabilities_images.append(result)
但是当上面的代码运行时,predicted_probabilities 的形状将是 (140, 35)。看起来相同的结果被垂直附加了两次。如何正确地将概率值垂直附加到二维数组以获得 (70, 35) 的形状?
【问题讨论】:
标签: python for-loop multidimensional-array numpy-ndarray vstack