Keras error "Failed to find data adapter that can handle input" while trying to train a model I've been following a tutorial on training a model and I've stumbled across an error that I've been struggling to find a solution for.

The code for the model training is bellow:

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten, Conv2D, MaxPooling2D
import pickle

X = pickle.load(open("X.pickle", "rb"))
y = pickle.load(open("y.pickle", "rb"))

X = X / 255.0

model = Sequential()
model.add(Conv2D(64, (3, 3), input_shape = X.shape[1:]))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size = (2, 2)))

model.add(Conv2D(64, (3, 3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size = (2, 2)))

model.add(Flatten())
model.add(Dense(64))

model.add(Dense(1))
model.add(Activation("sigmoid"))

model.compile(loss = 'binary_crossentropy',
             optimizer = 'adam',
             metrics = ['accuracy'])

model.fit(X, y, batch_size=32, validation_split=0.1)


And the result I get when I run this code is:


  ValueError                                Traceback (most recent call
  last)  in 
       28              metrics = ['accuracy'])
       29 
  ---> 30 model.fit(X, y, batch_size=32, validation_split=0.1)
  
  ~\Miniconda3\envs\tensorflow\lib\site-packages\tensorflow_core\python\keras\engine\training.py
  in fit(self, x, y, batch_size, epochs, verbose, callbacks,
  validation_split, validation_data, shuffle, class_weight,
  sample_weight, initial_epoch, steps_per_epoch, validation_steps,
  validation_freq, max_queue_size, workers, use_multiprocessing,
  **kwargs)
      731         max_queue_size=max_queue_size,
      732         workers=workers,
  --> 733         use_multiprocessing=use_multiprocessing)
      734 
      735   def evaluate(self,
  
  ~\Miniconda3\envs\tensorflow\lib\site-packages\tensorflow_core\python\keras\engine\training_v2.py
  in fit(self, model, x, y, batch_size, epochs, verbose, callbacks,
  validation_split, validation_data, shuffle, class_weight,
  sample_weight, initial_epoch, steps_per_epoch, validation_steps,
  validation_freq, **kwargs)
      215           validation_data=validation_data,
      216           validation_steps=validation_steps,
  --> 217           distribution_strategy=strategy)
      218 
      219       total_samples = _get_total_number_of_samples(training_data_adapter)
  
  ~\Miniconda3\envs\tensorflow\lib\site-packages\tensorflow_core\python\keras\engine\training_v2.py
  in _process_training_inputs(model, x, y, batch_size, sample_weights,
  class_weights, steps_per_epoch, validation_split, validation_data,
  validation_steps, shuffle, distribution_strategy)
      468                      'at same time.')
      469 
  --> 470   adapter_cls = data_adapter.select_data_adapter(x, y)
      471 
      472   # Handle validation_split, we want to split the data and get the training
  
  ~\Miniconda3\envs\tensorflow\lib\site-packages\tensorflow_core\python\keras\engine\data_adapter.py
  in select_data_adapter(x, y)
      446         "Failed to find data adapter that can handle "
      447         "input: {}, {}".format(
  --> 448             _type_name(x), _type_name(y)))
      449   elif len(adapter_cls) > 1:
      450     raise RuntimeError(
  
  ValueError: Failed to find data adapter that can handle input: , ( containing values of types {""})


Thank you in advance if you can help me figure out where the problem is.
There is something wrong with your data. {""} means you have a Python dict that only contains an empty string.