python - ImportError:无法从“tensorflow.python.keras.layers.normalization”不匹配版本中导入名称“LayerNormalization”修复?
问题描述
没有在 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 等的版本以使其工作。
解决方案
使用 Tensorflow 2.5 和 Keras 2.4.3 再试一次。
提供要点供参考
推荐阅读
- javascript - 我们应该在前端还是后端构建 Mongoose 查询?
- char - 与“cout”一起使用的自由字符指针函数
- java - java.lang.NoClassDefFoundError: mpi/MPIException
- python - 有没有办法使用我可以窃取并嵌入网站的 javascript / html 制作 firebase 动态链接
- azure - 无法使用 Visual Studio 订阅连接 Azure Devops 和 Azure
- python - 是否可以使用来自多个线程的 ctypes 调用 dll?
- python - 在谷歌表格的最后一行之后添加数据,使用 gspread python
- asp.net-core - 错误 al usar Dos modelos en una vista- mvc core
- html - 我如何将我的导航栏品牌与中心对齐并让我的导航链接从两侧围绕它
- javascript - 如何在 React 中显示 JSON 文件中的图像