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
1There are two types of modules -
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
0recently, in the latest update of Keras API 2.5.0 , importing Adam optimizer shows the following error:
from keras.optimizers import Adam ImportError: cannot import name 'Adam' from 'keras.optimizers'
instead use the following for importing optimizers (i.e. Adam) :
from keras.optimizers import adam_v2 optimizer = adam_v2.Adam(learning_rate=lr, decay=lr/epochs) Model.compile(loss='--', optimizer=optimizer , metrics=['--'])
for more details, please have a look at : https://programmerah.com/keras-nightly-import-package-error-cannot-import-name-adam-from-keras-optimizers-29815/
hopefully, this helps.
1from tensorflow.keras.optimizers import Adam
Try this in the 4th line(or just replace it with the above line). It worked for me.
You can do two things:
Go with tensorflow
from tensorflow.keras.optimizers import Adam
This might cause you to change other keras.*
modules to tensorflow.kerar.*
modules.
Stay at keras
from keras.optimizers_v1 import Adam
Adam has been shifted to optimizer_v1 module.
The error came from an older version of keras, in the newer version, you don't have to import Adam, it can be specified using the quote, i.e.:
model.compile(optimizer= "adam", loss='mse', metrics=[psnr, "accuracy"])
2In the fourth line, just make from keras.optimizers import Adam
. It should work perfectly fine!
from keras.optimizer_v2 import adam
Then call Adam from adam
adam.Adam(...);
The following worked for me:
# importing from keras.optimizers import adam_v2 # to use it adam_v2.Adam(...)
I am on a virtual environment running tensorflow-2.6.0
(CPU version, pip
installed) with Python3.8.7
.
ncG1vNJzZmirpJawrLvVnqmfpJ%2Bse6S7zGiorp2jqbawutJobWtvYGyCdoSOoqSpp6KpsrO%2BzqtknJmeo7y1ecimp6iqpGK7ornEZpidmZ1is7O7zGainqqRqHqwvNOipKKylafA