Tensorflow 的 flow_from_directory returns 错误集
Tensorflow’s flow_from_directory returns erroneous Set
我正在使用 ImageDataGenerator 创建验证集(对于使用 TF (Keras) 从标记的图像目录中进行的图像 class化。目录是 0、1、2、3、4,对应于 class每张图片,分别包含488、185、130、131、91张图片。
train_image_generator = ImageDataGenerator(rescale=1./255) # Generator for our training data
# validation_image_generator = ImageDataGenerator(rescale=1./255) # Generator for our validation data
train_data_gen = train_image_generator.flow_from_directory(batch_size=batch_size,
directory=train_dir,
shuffle=True,
target_size=(IMG_HEIGHT, IMG_WIDTH),
class_mode='categorical')
returns
Found 0 images belonging to 5 classes.
和下面的代码
validation_data_generator = train_image_generator.flow_from_directory(
train_dir, # same directory as training data
target_size=(IMG_HEIGHT, IMG_WIDTH),
batch_size=batch_size,
class_mode='categorical',
subset='validation') # set as validation data
输出:
Found 0 images belonging to 5 classes.
请问有什么问题吗?我想验证集至少有几张最后 class!
的图像
如有任何帮助,我们将不胜感激。
CS
如果没有看到您的目录字符串是什么,很难说,但我怀疑问题可能出在您的 "train_dir" 变量中。您可以尝试使用 os.path.exists(train_dir) 来查看您的代码是否确实指向了正确的位置,或者使用 os.listdir 来查看您是否以这种方式查看文件。
在创建数据生成器之前将此行放入其中可能会解决问题:
import os
train_dir=os.path.normpath(train_dir)
通常我发现问题出在路径中的斜杠上。如果只想使用字符串,通常需要使用双反斜杠 (\) 或单正斜杠 (/),而不是通常在路径中看到的单反斜杠。当您的文件名或子目录以数字开头(就像您的一样)时,这尤其成问题。
我正在使用 ImageDataGenerator 创建验证集(对于使用 TF (Keras) 从标记的图像目录中进行的图像 class化。目录是 0、1、2、3、4,对应于 class每张图片,分别包含488、185、130、131、91张图片。
train_image_generator = ImageDataGenerator(rescale=1./255) # Generator for our training data
# validation_image_generator = ImageDataGenerator(rescale=1./255) # Generator for our validation data
train_data_gen = train_image_generator.flow_from_directory(batch_size=batch_size,
directory=train_dir,
shuffle=True,
target_size=(IMG_HEIGHT, IMG_WIDTH),
class_mode='categorical')
returns
Found 0 images belonging to 5 classes.
和下面的代码
validation_data_generator = train_image_generator.flow_from_directory(
train_dir, # same directory as training data
target_size=(IMG_HEIGHT, IMG_WIDTH),
batch_size=batch_size,
class_mode='categorical',
subset='validation') # set as validation data
输出:
Found 0 images belonging to 5 classes.
请问有什么问题吗?我想验证集至少有几张最后 class!
的图像如有任何帮助,我们将不胜感激。
CS
如果没有看到您的目录字符串是什么,很难说,但我怀疑问题可能出在您的 "train_dir" 变量中。您可以尝试使用 os.path.exists(train_dir) 来查看您的代码是否确实指向了正确的位置,或者使用 os.listdir 来查看您是否以这种方式查看文件。
在创建数据生成器之前将此行放入其中可能会解决问题:
import os
train_dir=os.path.normpath(train_dir)
通常我发现问题出在路径中的斜杠上。如果只想使用字符串,通常需要使用双反斜杠 (\) 或单正斜杠 (/),而不是通常在路径中看到的单反斜杠。当您的文件名或子目录以数字开头(就像您的一样)时,这尤其成问题。