我正在尝试根据Keras / Colab教程对自己的图像运行图像分类器。以前,我是将图像手动拆分到train / test / validation文件夹中,并且工作正常。现在,当我将所有图像放入基本目录并拆分它们时遇到问题。
我想知道在使用numpy将图像拆分为训练,测试和验证集之后是否需要将图像直接复制到正确的目录中。
base_dir = 'drive/Colab/EV3/Base/'
like = os.path.join(base_dir, 'Like')
dislike = os.path.join(base_dir, 'Dislike')
trn_dir = 'drive/Colab/EV3/Train/'
val_dir = 'drive/Colab/EV3/Valid/'
tst_dir = 'drive/Colab/EV3/Test/'
trn_like = os.path.join(trn_dir, 'Like')
val_like = os.path.join(val_dir, 'Like')
tst_like = os.path.join(tst_dir, 'Like')
trn_disl = os.path.join(trn_dir, 'Dislike')
val_disl = os.path.join(val_dir, 'Dislike')
tst_disl = os.path.join(tst_dir, 'Dislike')
like_fnames.sort ()
np.random.shuffle(like_fnames)
disl_fnames = os.listdir(dislike)
disl_fnames.sort ()
np.random.shuffle(disl_fnames)
trn_like, val_like, tst_like = np.split(like_fnames, [int(.7*len(like_fnames)), int(.85*len(like_fnames))])
trn_disl, val_disl, tst_disl = np.split(disl_fnames, [int(.7*len(disl_fnames)), int(.85*len(disl_fnames))])
image_size = 640
batch_size = 112
train_datagen = keras.preprocessing.image.ImageDataGenerator(
rescale=1./255)
validation_datagen = keras.preprocessing.image.ImageDataGenerator(
rescale=1./255)
train_generator = train_datagen.flow_from_directory(
trn_dir,
target_size=(image_size, image_size),
batch_size=batch_size,
class_mode='binary')
validation_generator = validation_datagen.flow_from_directory(
val_dir,
target_size=(image_size, image_size),
batch_size=batch_size,
class_mode='binary')
主要问题发生在最后一步,我应该得到以下输出:
找到560个属于2类的图像。
找到了属于2类的120张图像。
但是我却得到:
找到0个属于2类的图像。
找到0个属于2类的图像。
很抱歉,我犯了一些明显的错误。我对python和编码非常陌生,正在尽我所能地遵循答案和教程。