导入错误:无法从“keras.optimizers”导入名称“adam”

vir*_*nde 7 keras

我正在尝试导入 Keras,但出现以下错误:

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

在此处调用导入:

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
Run Code Online (Sandbox Code Playgroud)

我确定 Keras 与 Tensorflow 一起安装:

python3 -c 'import keras; print(keras.__version__)' // 2.4.3
Run Code Online (Sandbox Code Playgroud)

小智 31

最近,在 Keras API 2.5.0 最新更新中,导入 Adam 优化器出现以下错误:

from keras.optimizers import Adam
ImportError: cannot import name 'Adam' from 'keras.optimizers' 
Run Code Online (Sandbox Code Playgroud)

而是使用以下内容来导入优化器(即 Adam):

from keras.optimizers import adam_v2
optimizer = adam_v2.Adam(learning_rate=lr, decay=lr/epochs)
Model.compile(loss='--',  optimizer=optimizer  , metrics=['--'])
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请查看: https://programmerah.com/keras-nightly-import-package-error-cannot-import-name-adam-from-keras-optimizers-29815/

希望这有帮助。


小智 24

from tensorflow.keras.optimizers import Adam

在第四行尝试这个(或者用上面的行替换它)。这对我有用。


小智 22

有两种类型的模块 -

  1. 凯拉斯
  2. 张量流.keras

这里需要用到tensorflow.keras

您需要从 tensorflow - Keras(不仅是 Keras)导入 Adam(带有大写 A)。

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
Run Code Online (Sandbox Code Playgroud)

  • 我想这是一个更新的工作答案,它对我有用 (2认同)

小智 20

你可以做两件事:

  1. 使用张量流

    from tensorflow.keras.optimizers import Adam

这可能会导致您将其他模块更改keras.*tensorflow.kerar.*模块。

  1. 留在喀拉斯

    from keras.optimizers_v1 import Adam

Adam 已转移到 Optimizer_v1 模块。


小智 6

在第四行,只需 make from keras.optimizers import Adam。它应该工作得很好!

  • 这不起作用。`无法从'keras.optimizers'导入名称'Adam'` (6认同)

Yuc*_*ang 6

错误来自旧版本的 keras,在较新版本中,您不必导入 Adam,可以使用引号指定,即:

model.compile(optimizer= "adam", loss='mse', metrics=[psnr, "accuracy"])
Run Code Online (Sandbox Code Playgroud)

  • 如果您想要更多种类,例如:`model.compile(optimizer = keras.optimizers.Adam(lr=0.001, Decay=0.9), loss='mse',metrics=[get_rmse])` (2认同)

Ali*_*hdr 6

from keras.optimizer_v2 import adam
Run Code Online (Sandbox Code Playgroud)

然后从 Adam 调用 Adam

adam.Adam(...);
Run Code Online (Sandbox Code Playgroud)


haf*_*031 5

以下对我有用:

# importing
from keras.optimizers import adam_v2
# to use it
adam_v2.Adam(...)
Run Code Online (Sandbox Code Playgroud)

我在运行tensorflow-2.6.0CPU版本,pip已安装)的虚拟环境中运行Python3.8.7.