【问题标题】:ImportError: cannot import name 'LayerNormalization' from 'tensorflow.python.keras.layers.normalization' mismatch versions fix?ImportError:无法从“tensorflow.python.keras.layers.normalization”不匹配版本中导入名称“LayerNormalization”修复?
【发布时间】:2021-08-11 01:45:18
【问题描述】:

没有在 stackoverflow 和 tensorflow 上发布太多内容。我按照本教程学习了如何安装 tensorflow 以在 jupyter 笔记本上使用 (https://github.com/jeffheaton/t81_558_deep_learning/blob/master/install/tensorflow-install-mac-jan-2021.ipynb)。

在测试环境时,我得到 Python 3.8.11、Tensor Flow 2.5.1 和 Keras 2.5.0

我正在尝试运行的代码:

import pandas as pd
import numpy as np
import tensorflow as tf
import re
from nltk.corpus import stopwords
from sklearn.model_selection import train_test_split
from sklearn.metrics import median_absolute_error as mae
from sklearn.metrics import mean_squared_error as mse
from sklearn.metrics import accuracy_score as acc
import matplotlib.pyplot as plt

from keras.models import Sequential
from keras import initializers
from keras.layers import Dropout, Activation, Embedding, Convolution1D, MaxPooling1D, Input, Dense, Merge, \
                         BatchNormalization, Flatten, Reshape, Concatenate
from keras.layers.recurrent import LSTM, GRU
from keras.callbacks import Callback, ModelCheckpoint, EarlyStopping, ReduceLROnPlateau
from keras.models import Model
from keras.optimizers import Adam, SGD, RMSprop
from keras import regularizers

我得到的错误是

ImportError                               Traceback (most recent call last)
<ipython-input-4-3a64b96c6d78> in <module>
     10 import matplotlib.pyplot as plt
     11 
---> 12 from keras.models import Sequential
     13 from keras import initializers
     14 from keras.layers import Dropout, Activation, Embedding, Convolution1D, MaxPooling1D, Input, Dense, Merge, \

/opt/miniconda3/envs/tensorflow/lib/python3.8/site-packages/keras/__init__.py in <module>
     23 
     24 # See b/110718070#comment18 for more details about this import.
---> 25 from keras import models
     26 
     27 from keras.engine.input_layer import Input

/opt/miniconda3/envs/tensorflow/lib/python3.8/site-packages/keras/models.py in <module>
     18 import tensorflow.compat.v2 as tf
     19 from keras import backend
---> 20 from keras import metrics as metrics_module
     21 from keras import optimizer_v1
     22 from keras.engine import functional

/opt/miniconda3/envs/tensorflow/lib/python3.8/site-packages/keras/metrics.py in <module>
     25 
     26 import numpy as np
---> 27 from keras import activations
     28 from keras import backend
     29 from keras.engine import base_layer

/opt/miniconda3/envs/tensorflow/lib/python3.8/site-packages/keras/activations.py in <module>
     18 
     19 from keras import backend
---> 20 from keras.layers import advanced_activations
     21 from keras.utils.generic_utils import deserialize_keras_object
     22 from keras.utils.generic_utils import serialize_keras_object

/opt/miniconda3/envs/tensorflow/lib/python3.8/site-packages/keras/layers/__init__.py in <module>
    146 
    147 # Normalization layers.
--> 148 from keras.layers.normalization import LayerNormalization
    149 from keras.layers.normalization_v2 import SyncBatchNormalization
    150 

ImportError: cannot import name 'LayerNormalization' from 'keras.layers.normalization' (/opt/miniconda3/envs/tensorflow/lib/python3.8/site-packages/keras/layers/normalization/__init__.py)

我知道有帖子称版本不匹配是导致此功能无法正常工作的原因,但不确定我将如何独立更改 tensorflow 等的版本以使其正常工作。

【问题讨论】:

  • 你是从 keras 导入的,使用 tensorflow 2.0 你的导入看起来像from tensorflow.keras.models import Sequential,如果你仍然遇到错误,你可以试试这个吗?
  • 好的,将from keras 替换为from tensorflow.keras,但现在得到ImportError: cannot import name 'Merge' from 'tensorflow.keras.layers' (/opt/miniconda3/envs/tensorflow/lib/python3.8/site-packages/tensorflow/keras/layers/__init__.py)。查了一下,发现 Keras 不支持 Merge?
  • 它已被弃用,您可以使用连接。参考documentation,some more ideas

标签: python tensorflow keras


【解决方案1】:

使用 Tensorflow 2.5 和 Keras 2.4.3 再试一次。

提供gist供参考

【讨论】:

    猜你喜欢
    • 2021-08-05
    • 1970-01-01
    • 2021-12-08
    • 2019-12-30
    • 1970-01-01
    • 2019-11-27
    • 2015-02-05
    • 2019-12-19
    • 1970-01-01
    相关资源
    最近更新 更多