-1

我的深度学习主题是将图像分为 5 个不同的类别。我使用 ImageDataGenerator 库将我的数据集拆分为训练和测试。否定了创建需要大量手动工作的 csv 文件的需要。我已经成功开发了一个遵循 CNN 方法的模型架构,并在测试数据集上评估了我的模型的性能,这给了我 83% 的准确率。现在,当我尝试预测我的模型对图像进行分类时,这是它给出的错误:

ValueError                                Traceback (most recent call last)
<ipython-input-147-51d5b018a219> in <module>()
     11    images = np.vstack([X])
     12    val = model.predict(images)
---> 13    if val == 0:
     14      print("Clean")
     15    elif val ==1:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

这是我的代码:

    import os
    test_dir = 'directory containing random images'

    for i in os.listdir(test_dir ):
       img = image.load_img(test_dir+ '/'+i, target_size=(200,200))
       plt.imshow(img)
       plt.show()
     
       X = image.img_to_array(img)
       X = np.expand_dims(X,axis = 0)
       images = np.vstack([X])
       val = model.predict(images)
       if val == 0:
         print("Clean")
       elif val ==1:
         print("Covered In Bird Droppings")
       elif val ==2:
         print ("Covered In Dust")
       elif val ==3:
         print("Covered In Grey Sand")
       elif val ==4:
         print("Covered In Sand") 

我对如何解决这个问题一无所知。

4

1 回答 1

0

如果打印 的结果model.predict(),您会看到它不是单个值,而是一个 numpy 数组。该数组的哪个值是您要查找的数字,您必须在文档中找到。但假设它是第一个,你会先做val = val[0]

于 2020-09-23T12:17:23.757 回答