Search code examples
keras

ImportError: cannot import name 'adam' from 'keras.optimizers'


I am trying to import Keras but I get the following error:

ImportError: cannot import name 'adam' from 'keras.optimizers' (/usr/local/lib/python3.8/dist-packages/keras/optimizers/__init__.py)

The import is invoked here:

from tensorflow import keras
from keras.layers import Conv2D, Input, MaxPool2D,Flatten, Dense, Permute, GlobalAveragePooling2D
from keras.models import Model
from keras.optimizers import adam
import numpy as np
import pickle
import keras
import cv2
import sys
import dlib
import os.path
from keras.models import Sequential
from keras.applications.resnet50 import ResNet50
from keras.applications.resnet50 import Dense
from keras.optimizers import Adam
import pickle
import numpy as np
import cv2
import os
from keras.layers import Dropout

I am sure Keras is installed along with Tensorflow:

python3 -c 'import keras; print(keras.__version__)' // 2.4.3

Solution

  • There are two types of modules -

    1. keras
    2. tensorflow.keras

    Here we need to use tensorflow.keras

    You need to import Adam (With Capital A) from tensorflow - Keras ( Not only Keras).

    from tensorflow.keras.optimizers import Adam
    
    from tensorflow.keras.optimizers import Adam # - Works
    from tensorflow.keras.optimizers import adam # - Does not work
    from keras.optimizers import Adam            # - Does not work
    from keras.optimizers import adam            # - Does not work