title: Error in Image generator : Asked to retrieve element 0, but the Sequence has length 0
body: <ul>
  <li><p>I'm trying to calculate the <strong>True Positive, True Negative, False Positive, False Negative ratios</strong> in binary class coloured image classification problem.</p>
  </li>
  <li><p>I have binary class, faces and backgrounds colour images, and I have to classify them using MLP.</p>
  </li>
  </ul>
  <h3>My problem is that: I get the Error:</h3>
  <blockquote>
  <p>ValueError: Asked to retrieve element 0, but the Sequence has length 0</p>
  </blockquote>
  <h2>Edit: Full Traceback</h2>
  <pre><code>/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py in _method_wrapper(self, *args, **kwargs)
      128       raise ValueError('{} is not supported in multi-worker mode.'.format(
      129           method.__name__))
  --&gt; 130     return method(self, *args, **kwargs)
      131 
      132   return tf_decorator.make_decorator(
  
  /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py in predict(self, x, batch_size, verbose, steps, callbacks, max_queue_size, workers, use_multiprocessing)
     1577           use_multiprocessing=use_multiprocessing,
     1578           model=self,
  -&gt; 1579           steps_per_execution=self._steps_per_execution)
     1580 
     1581       # Container that configures and calls `tf.keras.Callback`s.
  
  /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/data_adapter.py in __init__(self, x, y, sample_weight, batch_size, steps_per_epoch, initial_epoch, epochs, shuffle, class_weight, max_queue_size, workers, use_multiprocessing, model, steps_per_execution)
     1115         use_multiprocessing=use_multiprocessing,
     1116         distribution_strategy=ds_context.get_strategy(),
  -&gt; 1117         model=model)
     1118 
     1119     strategy = ds_context.get_strategy()
  
  /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/data_adapter.py in __init__(self, x, y, sample_weights, shuffle, workers, use_multiprocessing, max_queue_size, model, **kwargs)
      914         max_queue_size=max_queue_size,
      915         model=model,
  --&gt; 916         **kwargs)
      917 
      918   @staticmethod
  
  /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/data_adapter.py in __init__(self, x, y, sample_weights, workers, use_multiprocessing, max_queue_size, model, **kwargs)
      784     # Since we have to know the dtype of the python generator when we build the
      785     # dataset, we have to look at a batch to infer the structure.
  --&gt; 786     peek, x = self._peek_and_restore(x)
      787     peek = self._standardize_batch(peek)
      788     peek = _process_tensorlike(peek)
  
  /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/data_adapter.py in _peek_and_restore(x)
      918   @staticmethod
      919   def _peek_and_restore(x):
  --&gt; 920     return x[0], x
      921 
      922   def _handle_multiprocessing(self, x, workers, use_multiprocessing,
  
  /usr/local/lib/python3.6/dist-packages/keras_preprocessing/image/iterator.py in __getitem__(self, idx)
       55                              'but the Sequence '
       56                              'has length {length}'.format(idx=idx,
  ---&gt; 57                                                           length=len(self)))
       58         if self.seed is not None:
       59             np.random.seed(self.seed + self.total_batches_seen)
  
  ValueError: Asked to retrieve element 0, but the Sequence has length 0
  </code></pre>
  <ul>
  <li>While trying to predict each folder from the 2 classes <strong>separately(and not the root folder which contains 2 folders, one for each class as in training)</strong>.</li>
  </ul>
  <h3>My code which generating the Error is :</h3>
  <pre class="lang-py prettyprint-override"><code>test_face_dir = &quot;/content/test/TESTSET/face&quot;
  test_background_dir = &quot;/content/test/TESTSET/background&quot;
  # Face DG
  test_datagen_face = ImageDataGenerator(rescale=1./255)
  
  test_generator_face = test_datagen_face.flow_from_directory(
      test_face_dir,
      target_size=img_window[:2],
      batch_size=batch_size,
      class_mode='binary',
      color_mode='rgb'
      )
  # Background DG
  test_datagen_background = ImageDataGenerator(rescale=1./255)
  
  test_generator_background = test_datagen_background.flow_from_directory(
      test_background_dir,
      target_size=img_window[:2],
      batch_size=batch_size,
      class_mode='binary',
      color_mode='rgb'
      )
  #-----------------------------------------
  prediction_face = simpleMLP.predict(test_generator_face)
  prediction_background = simpleMLP.predict(test_generator_background)
  #-----------------------------------------
  # th = 0.5 #threshold
  # Face
  prediction_face[prediction_face&gt;=th]=1 
  prediction_face[prediction_face&lt;th]=0
  pred_face = np.squeeze(prediction_face)
  print('pred shape: ', pred_face.shape,int(np.sum(pred_face)))
  # Background
  prediction_background[prediction_background&gt;=th]=1 
  prediction_background[prediction_background&lt;th]=0
  pred_background = np.squeeze(prediction_background)
  print('pred shape: ', pred_background.shape,int(np.sum(pred_background)))
  
  </code></pre>