Search code examples
pythonpython-3.xtensorflowkerasdeep-learning

ImportError: cannot import name 'ImageDataGenerator' from 'tensorflow.keras.preprocessing'


Problem when importing the ImageDataGenerator from keras.

I tried using:

from tensorflow import ImageDataGenerator
from tensorflow.keras.preprocessing import ImageDataGenerator

Creating alias for keras and/or tensorflow, no success.

Receiving the following Error Message:

File "/Users/<mine>/<mine>/<mine>/<mine>/training/zz_train.py", line 8, in <module>
    from tensorflow.keras.preprocessing import ImageDataGenerator
ImportError: cannot import name 'ImageDataGenerator' from 'tensorflow.keras.preprocessing' (/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/keras/_tf_keras/keras/preprocessing/__init__.py)

Solution

  • Try this:

    from tensorflow.keras.preprocessing.image import ImageDataGenerator
    

    or

    from keras.src.legacy.preprocessing.image import ImageDataGenerator
    

    this is depcrecated as well :

    https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing/image/ImageDataGenerator

    "Deprecated: tf.keras.preprocessing.image.ImageDataGenerator is not recommended for new code. Prefer loading images with tf.keras.utils.image_dataset_from_directory and transforming the output"