I have dataset with more than 10000 images and I am using tf.keras DataGenerator to load the data in batches. However, when I fit the model using model.fit_generator I get an error: 'NoneType' object has no attribute 'shape'.
Here is the code snippet:
import mathimport randomimport cv2import numpy as npimport tensorflow as tffrom tensorflow import kerasfrom tensorflow.keras.utils import Sequencefrom tensorflow.keras.applications.mobilenet import preprocess_inputclass DataGenerator(Sequence): def __init__(self, dataset, batch_size=30, shuffle=True, predict=False): self.dataset = dataset self.batch_size=batch_size self.shuffle=shuffle self.predict=predict self.on_epoch_end() def __len__(self): return math.ceil(len(self.dataset) /self.batch_size) def __getitem__(self, index): indexes = self.indexes[index*self.batch_size:(index+1)*self.batch_size] # code to generate images # code to generate masks return images, masks def on_epoch_end(self): self.indexes = np.arange(len(self.dataset)) if self.shuffle == True: np.random.shuffle(self.indexes)model = create_model()model.compile()train_gen = DataGenerator(X_train, batch_size=30, predict=False)val_gen= DataGenerator(X_val, batch_size=30, predict=False)model.fit_generator(train_gen, validation_data = val_gen, epochs=1, verbose=1) The inputs: X_train and X_val are numpy arraysTensorflow version: 1.15.0Keras version: 2.2.4Here is the error that I get when using fit_generator
AttributeError Traceback (most recent call last)<ipython-input-52-b30d342db2da> in <module>----> 1 model.fit_generator(train_gen, validation_data = val_gen, epochs=1, verbose=1) 2 ~\Anaconda3\envs\tf\lib\site-packages\tensorflow_core\python\keras\engine\training.py in fit_generator(self, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, validation_freq, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch) 1294 shuffle=shuffle, 1295 initial_epoch=initial_epoch,-> 1296 steps_name='steps_per_epoch') 1297 1298 def evaluate_generator(self,~\Anaconda3\envs\tf\lib\site-packages\tensorflow_core\python\keras\engine\training_generator.py in model_iteration(model, data, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, validation_freq, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch, mode, batch_size, steps_name, **kwargs) 255 # `batch_size` used for validation data if validation 256 # data is NumPy/EagerTensors.--> 257 batch_size = int(nest.flatten(batch_data)[0].shape[0]) 258 259 # Callbacks batch begin.AttributeError: 'NoneType' object has no attribute 'shape'I would really appreciate any guidance to resolve this.