有没有一种简单的方法可以使用 ImageDataGenerator 对 10% 的训练和测试数据进行子集化?
Is there a simple way to subset 10 percent of train and test data using ImageDataGenerator?
我的目录结构如下:
-root_dir----------------------------
--train
---dog (contains 750 images of dogs)
---cat (contains 750 images of cats)
---mouse (contains 750 images of mice)
--test
---dog (contains 250 images of dogs)
---cat (contains 250 images of cats)
---mouse (contains 250 images of mice)
这就是我加载数据的方式:
from tensorflow.keras.preprocessing.image import ImageDataGenerator
train_data_gen = ImageDataGenerator(rescale=1./255)
train_data = train_data_gen.flow_from_directory(directory='/root_dir/train/',
target_size=(224, 224),
class_mode='categorical',
batch_size=32,
seed=42)
test_data_gen = ImageDataGenerator(rescale=1./255)
test_data = test_data_gen.flow_from_directory(directory='/root_dir/test/',
target_size=(224, 224),
class_mode='categorical',
batch_size=32,
seed=42)
它工作正常。
train_data
包含每个 class 的 750 张图像。
但是,我只需要 运行 对 10% 的数据进行快速实验。
我需要 train_data_10_percent_subset,其中包含每个 class.
的 75 张随机选择的图像
有没有简单的方法使用 ImageDataGenerator 在每个子文件夹中随机选择 train 目录中 10% 的图像?
我需要一个生成器,其中包含每个 class 的 75 张图像,来自火车子文件夹
你可以做到这一点
train_data_gen = ImageDataGenerator(rescale=1./255, validation_split=.1)
train_data = train_data_gen.flow_from_directory(directory='/root_dir/train/',
target_size=(224, 224),
class_mode='categorical',
batch_size=32,
seed=42, subset='validation')
将 validation_split 设置为 .1 保留 10% 的数据用于验证。设置 subset='validation' 将使 train_data 拥有 10% 的训练数据
我的目录结构如下:
-root_dir----------------------------
--train
---dog (contains 750 images of dogs)
---cat (contains 750 images of cats)
---mouse (contains 750 images of mice)
--test
---dog (contains 250 images of dogs)
---cat (contains 250 images of cats)
---mouse (contains 250 images of mice)
这就是我加载数据的方式:
from tensorflow.keras.preprocessing.image import ImageDataGenerator
train_data_gen = ImageDataGenerator(rescale=1./255)
train_data = train_data_gen.flow_from_directory(directory='/root_dir/train/',
target_size=(224, 224),
class_mode='categorical',
batch_size=32,
seed=42)
test_data_gen = ImageDataGenerator(rescale=1./255)
test_data = test_data_gen.flow_from_directory(directory='/root_dir/test/',
target_size=(224, 224),
class_mode='categorical',
batch_size=32,
seed=42)
它工作正常。
train_data
包含每个 class 的 750 张图像。
但是,我只需要 运行 对 10% 的数据进行快速实验。 我需要 train_data_10_percent_subset,其中包含每个 class.
的 75 张随机选择的图像有没有简单的方法使用 ImageDataGenerator 在每个子文件夹中随机选择 train 目录中 10% 的图像?
我需要一个生成器,其中包含每个 class 的 75 张图像,来自火车子文件夹
你可以做到这一点
train_data_gen = ImageDataGenerator(rescale=1./255, validation_split=.1)
train_data = train_data_gen.flow_from_directory(directory='/root_dir/train/',
target_size=(224, 224),
class_mode='categorical',
batch_size=32,
seed=42, subset='validation')
将 validation_split 设置为 .1 保留 10% 的数据用于验证。设置 subset='validation' 将使 train_data 拥有 10% 的训练数据