I wrote a code for the segmentation of iris images and got relatively good results. But I need to do it better. I want to use k-fold cross validation.
I wrote a code for the segmentation of iris images and got relatively good results. But I need to do it better. I want to use k-fold cross validation.
from tensorflow.keras.preprocessing.image import ImageDataGenerator
batch_size = 8
target_size = (45, 60)
seed = 123
image_datagen = ImageDataGenerator(rescale=1./255)
mask_datagen = ImageDataGenerator(rescale=1./255)
val_image_datagen = ImageDataGenerator(rescale=1./255)
val_mask_datagen = ImageDataGenerator(rescale=1./255)
test_image_datagen = ImageDataGenerator(rescale=1./255)
test_mask_datagen = ImageDataGenerator(rescale=1./255)
train_image_generator = image_datagen.flow_from_directory(
'/content/offf/off-axis/aff-axis',
color_mode="grayscale",
batch_size=batch_size,
class_mode=None,
target_size=target_size,
shuffle=True,
seed=seed)
train_mask_generator = mask_datagen.flow_from_directory(
'/content/offf/off-axis/off-axisgt',
batch_size=batch_size,
color_mode="grayscale",
class_mode=None,
target_size=target_size,
shuffle=True,
seed=seed)
val_image_generator = val_image_datagen.flow_from_directory(
'/content/off/off-axis/valid/val',
color_mode="grayscale",
batch_size=batch_size,
class_mode=None,
target_size=target_size,
shuffle=True,
seed=seed)
val_mask_generator = val_mask_datagen.flow_from_directory(
'/content/off/off-axis/valid/mask',
batch_size=batch_size,
color_mode="grayscale",
class_mode=None,
target_size=target_size,
shuffle=True,
seed=seed)
test_image_generator = test_image_datagen.flow_from_directory(
'/content/off/off-axis/testset/test',
batch_size=batch_size,
color_mode="grayscale",
class_mode=None,
target_size=target_size,
shuffle=True,
seed=seed)
test_mask_generator = test_image_datagen.flow_from_directory(
'/content/off/off-axis/testset/gt',
batch_size=batch_size,
color_mode="grayscale",
class_mode=None,
target_size=target_size,
shuffle=True,
seed=seed)
train_generator = (pair for pair in zip(train_image_generator, train_mask_generator))
#train_generator = zip(train_image_generator, train_mask_generator)
val_generator = (pair for pair in zip(val_image_generator, val_mask_generator))
.........
opt = Adam(learning_rate=5e-5, beta_1=0.9 , beta_2=0.999) # Adam optimizer
loss = MSE # Mean Square Error for loss function
model.compile(optimizer=opt, loss = loss, metrics = 'acc')
results = model.fit(train_generator,
steps_per_epoch = len(train_image_generator),
validation_data=val_generator,
validation_steps=len(val_image_generator),
epochs=50)