【发布时间】: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