Reputation: 125
Preparing my data with ImageDataGenerator. So far I did the following,
For training data:
def data_aug(validation_split=0.25, batch_size=32, seed=42):
datagen = ImageDataGenerator( rotation_range=10,
validation_split=0.2)
# **train** data
X_train_augmented = datagen.flow_from_directory(
directory='../input/train/fg_image',
target_size=(256, 256),
shuffle=True,
batch_size=32,
seed=42
)
Y_train_augmented = datagen.flow_from_directory(
directory='../input/train/gt_mask',
target_size=(256, 256), # resize to this size
shuffle=True,
batch_size=32,
seed=42
)
# **validation**:
X_test_augmented = datagen.flow_from_directory(
directory='../input/validation/fg_image',
target_size=(256, 256), # resize to this size
shuffle=True,
batch_size=32,
seed=42
)
Y_test_augmented = datagen.flow_from_directory(
directory='../input/validation/gt_mask',
target_size=(256, 256), # resize to this size
shuffle=True,
batch_size=32,
seed=42
)
train_generator = zip(X_train_augmented, Y_train_augmented)
test_generator = zip(X_test_augmented, Y_test_augmented)
return train_generator, test_generator
Then when I tried the training step:
train_generator, test_generator = data_aug()
model.fit_generator(train_generator, steps_per_epoch=2000,epochs=50)
Ended up with an error of,
ValueError: Layer model expects 1 input(s), but it received 2 input tensors. Inputs received: [<tf.Tensor 'IteratorGetNext:0' shape=(None, None, None, None) dtype=float32>, <tf.Tensor 'IteratorGetNext:1' shape=(None, None) dtype=float32>]
(updated)
Upvotes: 2
Views: 176