标签:belonging validation keras flow batch datagen train 224 size
图像分类时,keras调用flow_from_directory()出现“Found 0 images belonging to 5 classes”问题
代码如下:
from tensorflow import keras
from keras_preprocessing import image
train_datagen = image.ImageDataGenerator(
#.....
fill_mode = 'nearest',
validation_split=0.3
)
valid_datagen = image.ImageDataGenerator(
rescale=1./255,
)
test_datagen = image.ImageDataGenerator(
rescale = 1./255,
)
train_generator = train_datagen.flow_from_directory(
'zuizhong/train',
target_size=(224,224),#(height,width)
batch_size=batch_size,
#subset='training',
)
valid_generator = valid_datagen.flow_from_directory(
'zuizhong/val',
target_size=(224,224),
batch_size=batch_size,
subset='validation',
)
#0: 'jinyu118', 1: 'kenuo58', 2: 'liyuan296', 3: 'tieyan630', 4: 'yunyu18'
test_generator = test_datagen.flow_from_directory(
'zuizhong/test',
target_size=(224,224),
batch_size=batch_size,
)
目录结构如下,没有问题,每个子目录存放的全都为.png图像文件,
- train
- class1
- class2
- val
- class1
- class2
- test
- class1
- class2
但是抛出了"Found 0 images belonging to 2 classes"问题。
经过查看flow_from_directory()的参数说明,终于找到原因:
train_datagen中有validation_split=0.3 要从训练集中分出0.3作为训练集,但后面的验证集确没有从train_datagen中生成,另从valid_datagen中生成了,且为验证集目录val,况且后面还有一句
subset=‘validation’,前后造成了矛盾;
解决方法一:验证集从训练集中分出时,前面有'validation_split=0.3'
valid_generator = train_datagen.flow_from_directory(
'zuizhong/train',
target_size=(224,224),
batch_size=batch_size,
subset='validation',
解决方法二:单独建立验证集目录val时,不要用'validation_split=0.3'
train_datagen = image.ImageDataGenerator(
#.....
fill_mode = 'nearest',
#validation_split=0.3
)
valid_datagen = image.ImageDataGenerator(
rescale=1./255,
)
....
valid_generator = valid_datagen.flow_from_directory(
'zuizhong/val',
target_size=(224,224),
batch_size=batch_size,
#subset='validation',
标签:belonging,validation,keras,flow,batch,datagen,train,224,size 来源: https://blog.csdn.net/m0_64748541/article/details/123607643
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。