Моя текущая структура папок:
train
class1/
img1.jpg
img2.jpg
...
class2/
img3.jpg
img4.jpg
...
test
class1/
img1.jpg
img2.jpg
...
class2/
img3.jpg
img4.jpg
...
Мой текущий рабочий процесс:
train_datagen = ImageDataGenerator(
rescale=1.0 / 255, shear_range=0.2, zoom_range=0.2, horizontal_flip=True, rotation_range=0.2
)
test_datagen = ImageDataGenerator(rescale=1.0 / 255)
train_generator = train_datagen.flow_from_directory(
os.getcwd() + config.DATA + "train",
target_size=(img_width, img_height),
class_mode="binary",
batch_size=batch_size,
)
validation_generator = test_datagen.flow_from_directory(
os.getcwd() + config.DATA + "val",
target_size=(img_width, img_height),
class_mode="binary",
batch_size=batch_size,
)
Какой предпочтительный способ сделать рабочий процесс, который включает вызов flow_from_directory и кросс-фолдинг-подтверждение (желательно с помощью scikit?)
Я думал о подходе сделать только одну папку со всеми данными и метками классов:
class1
image1
class2
image2
, затем перетасовать и разделить еев K папок (с именами: liek fold1, fold2, fold3, fold4, fold5).
Тогда я бы просто использовал цикл таким образом:
for i in range(k):
validation_generator = flow_from_directory('....data/fold(i)')
test_generator = flow_from_directory('...data/fold every other folder)
... train model, fit model
, а затем просто усреднил val_acc для каждогомодель в цикле модели.
Это хороший подход?Есть ли что-нибудь более эффективное?