Tensorflow Data Adapter Error: ValueError: Failed to find data adapter that can handle input
Have you checked whether your training/testing data and training/testing labels are all numpy arrays? It might be that you're mixing numpy arrays with lists.
You can avoid this error by converting your labels to arrays before calling model.fit()
:
train_x = np.asarray(train_x)
train_y = np.asarray(train_y)
validation_x = np.asarray(validation_x)
validation_y = np.asarray(validation_y)
If you encounter this problem while dealing with a custom generator inheriting from the keras.utils.Sequence
class, you might have to make sure that you do not mix a Keras
or a tensorflow - Keras
-import.
This might especially happen when you have to switch to a previous tensorflow
version for compatibility (like with cuDNN
).
If you for example use this with a tensorflow
-version > 2...
from keras.utils import Sequence
class generatorClass(Sequence):
def __init__(self, x_set, y_set, batch_size):
...
def __len__(self):
...
def __getitem__(self, idx):
return ...
... but you actually try to fit this generator in a tensorflow
-version < 2, you have to make sure to import the Sequence
-class from this version like:
keras = tf.compat.v1.keras
Sequence = keras.utils.Sequence
class generatorClass(Sequence):
...