У меня есть папка с именем Downloaded
, в которой содержатся изображения, для которых прогноз должен быть выполнен обученной моделью CNN.
Ниже приведен код для импорта изображений:
import os
images = []
for filename in os.listdir("downloaded"):
img = Image.open(os.path.join("downloaded", filename))
img = img.resize((32, 32))
plt.imshow(img)
plt.show()
img = np.array(img) / 255
images.append(img)
Теперь приведенный ниже код помогает делать прогнозы на этих изображениях:
predictions = model.predict(images)
Наконец, прогнозы отображаются в виде изображения и графика для каждого изображения.
fig, axs = plt.subplots(9, 2, figsize=(10, 25))
axs = axs.ravel()
for i in range(18):
if i%2 == 0:
axs[i].axis('off')
axs[i].imshow(images[i // 2])
axs[i].set_title("Prediction: %s" % id_to_name[np.argmax(predictions[i // 2])])
else:
axs[i].bar(np.arange(65), predictions[i // 2])
axs[i].set_ylabel("Softmax")
axs[i].set_xlabel("Labels")
plt.show()
Я хочу сохранить этот вывод в виде изображения.
Для этого я использую следующий код:
fig, axs = plt.subplots(9, 2, figsize=(10, 25))
axs = axs.ravel()
for i in range(18):
if i%2 == 0:
axs[i].axis('off')
axs[i].imshow(images[i // 2])
axs[i].set_title("Prediction: %s" % id_to_name[np.argmax(predictions[i // 2])])
plt.imsave('"Prediction: %s" % id_to_name[np.argmax(predictions[i // 2])]',axs[i])
else:
axs[i].bar(np.arange(65), predictions[i // 2])
axs[i].set_ylabel("Softmax")
axs[i].set_xlabel("Labels")
plt.show()
Но, появляется следующая ошибка:
AttributeError: 'AxesSubplot' object has no attribute 'shape'
Не могли бы вы рассказать, как сохранить этот вывод в для изображений?
PS: Ниже содержится то, что images
содержит:
Out [94]:
[массив ([[[1., 0,85882353, 0,85882353], [1., 0.04313725, 0.03921569], [1., 0.04313725, 0.03921569], ..., [1., 0.04313725, 0.03921569], [1., 0.03529412, 0.03137255], [1., 0.76862745, 0.76470588]],
[[1. , 0. , 0. ],
[1. , 0. , 0. ],
[1. , 0. , 0. ],
...,
[1. , 0. , 0. ],
[1. , 0. , 0. ],
[1. , 0. , 0. ]],...................