【问题标题】:Kerras : Found 39 images belonging to 3 classes. Found 49 images belonging to 3 classesKeras:找到属于 3 个类别的 39 个图像。找到属于 3 个类别的 49 个图像
【发布时间】:2020-09-02 11:57:57
【问题描述】:
from keras.preprocessing.image import ImageDataGenerator

WIDTH = 299
HEIGHT = 299
BATCH_SIZE = 32

# data prep
train_datagen = ImageDataGenerator(
    preprocessing_function=preprocess_input,
    rotation_range=40,
    width_shift_range=0.2,
    height_shift_range=0.2,
    shear_range=0.2,
    zoom_range=0.2,
    horizontal_flip=True,
    fill_mode='nearest')

validation_datagen = ImageDataGenerator(
    preprocessing_function=preprocess_input,
    rotation_range=40,
    width_shift_range=0.2,
    height_shift_range=0.2,
    shear_range=0.2,
    zoom_range=0.2,
    horizontal_flip=True,
    fill_mode='nearest')

train_generator = train_datagen.flow_from_directory(
    TRAIN_DIR,
    target_size=(HEIGHT, WIDTH),
        batch_size=BATCH_SIZE,
        class_mode='categorical')

validation_generator = validation_datagen.flow_from_directory(
    TEST_DIR,
    target_size=(HEIGHT, WIDTH),
    batch_size=BATCH_SIZE,
    class_mode='categorical')

对于这部分代码,我的输出应该是“找到属于 2 个类的 39 个图像。

找到属于 2 个类别的 49 张图像”。但我得到了 3 个类别。

请帮帮我。在此先感谢。还有谁能告诉我它是根据什么分类的

完整代码请查看此链接https://colab.research.google.com/drive/18AN2AUM5sEsTMGUzFUL0FLSULtXF4Ps0

【问题讨论】:

  • 该问题与 Keras 无关。这是 Colab 笔记本中的预处理步骤。出于某种原因,您的培训目录中有 3 个文件夹。我运行你的代码没有问题。你篡改了文件夹吗?
  • @NicolasGervais 这就是我的训练目录的声明方式“TRAIN_DIR = '/content/drive/My Drive/train'”并且训练目录 Cat 和 Dog 中只有两个子文件夹。没有文件夹受阻
  • 删除 Colab 创建的文件夹 !rmdir Path_of_Folder/.ipynb_checkpoints

标签: python python-3.x tensorflow keras neural-network


【解决方案1】:

使用此代码检查文件夹中存在的目录,这将显示该文件夹中所有目录的名称。此代码显示所有目录,即使它是隐藏的。

          import os
          dir = os.listdir('path_to_your_main_directory')
          print(dir)

现在,在您知道不需要的子目录的名称后,使用以下代码将其删除

         file_path = ('path_to_your_main_directory/subdirectory_name')
         os.rmdir(file_path)

【讨论】:

    【解决方案2】:

    Colab 会在 gdrive 的工作目录中自动创建一个名为“.ipynb_checkpoints”的文件夹。 确保在开始生成数据之前将其删除。

    【讨论】:

    • 这应该是正确的答案。
    【解决方案3】:

    检查新文件夹。它可能是由 colab 创建的。

    【讨论】:

      【解决方案4】:

      由于你有二分类问题,你可以尝试将class_mode更改为'binary`,如下所示

      train_generator = train_datagen.flow_from_directory(
          TRAIN_DIR,
          target_size=(HEIGHT, WIDTH),
              batch_size=BATCH_SIZE,
              class_mode='binary')
      
      validation_generator = validation_datagen.flow_from_directory(
          TEST_DIR,
          target_size=(HEIGHT, WIDTH),
          batch_size=BATCH_SIZE,
          class_mode='binary')
      

      编辑:我认为它会在文件夹中添加一个额外的文件,如下面的屏幕截图所示

      【讨论】:

      • 更改为二进制仍然得到相同的输出
      • 我也有类似的经历。请检查文件夹结构。当您将文件夹上传到 gdrive 时,会有一个由 google drive 创建的 .DS_Store 文件。我相信这就是您的 colab 无需修改代码即可正常工作的原因。
      • 是的,你是对的,colab 创建了一个新文件夹“.ipynb_checkpoints”。它现在可以工作了。谢谢
      猜你喜欢
      • 2021-02-10
      • 1970-01-01
      • 2020-11-15
      • 2020-08-11
      • 1970-01-01
      • 2015-02-10
      • 1970-01-01
      • 2010-11-15
      • 1970-01-01
      相关资源
      最近更新 更多