bojone / bert4keras

keras implement of transformers for humans
https://kexue.fm/archives/6915
Apache License 2.0
5.37k stars 929 forks source link

AttributeError: module 'tensorflow._api.v1.compat.v2.compat' has no attribute 'v1' #369

Open xinjicong opened 3 years ago

xinjicong commented 3 years ago

提问时请尽可能提供如下信息:

基本信息

-Ubuntu 18.04.3

核心代码

from bert4keras.backend import keras, K
  File "lib/python3.6/site-packages/bert4keras/backend.py", line 21, in <module>
import keras

输出信息

AttributeError: module 'tensorflow._api.v1.compat.v2.compat' has no attribute 'v1'



### 自我尝试
在尝试跑这个代码的时候报错。。。是有什么版本问题吗
PeopleDaily_GlobalPointer.py
bojone commented 3 years ago

错误信息贴详细点?还真没碰到过类似错误~

xinjicong commented 3 years ago

环境 tensorboard 1.14.0 tensorflow 1.14.0 tensorflow-estimator 1.14.0 Keras 2.3.1 Keras-Applications 1.0.8 keras-nightly 2.5.0.dev2021032900 Keras-Preprocessing 1.1.2 bert4keras 0.10.6

然后执行 GlobalPointer$ python PeopleDaily_GlobalPointer.py /anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:516: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint8 = np.dtype([("qint8", np.int8, 1)]) /anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:517: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_quint8 = np.dtype([("quint8", np.uint8, 1)]) /anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:518: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint16 = np.dtype([("qint16", np.int16, 1)]) /anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:519: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_quint16 = np.dtype([("quint16", np.uint16, 1)]) /anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:520: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint32 = np.dtype([("qint32", np.int32, 1)]) /anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:525: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. np_resource = np.dtype([("resource", np.ubyte, 1)]) /anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:541: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint8 = np.dtype([("qint8", np.int8, 1)]) /anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:542: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_quint8 = np.dtype([("quint8", np.uint8, 1)]) /anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:543: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint16 = np.dtype([("qint16", np.int16, 1)]) /anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:544: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_quint16 = np.dtype([("quint16", np.uint16, 1)]) /anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:545: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint32 = np.dtype([("qint32", np.int32, 1)]) /anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:550: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. np_resource = np.dtype([("resource", np.ubyte, 1)]) Using TensorFlow backend. Traceback (most recent call last): File "PeopleDaily_GlobalPointer.py", line 7, in from bert4keras.backend import keras, K File "/anaconda3/envs/tensorflow/lib/python3.6/site-packages/bert4keras/backend.py", line 21, in import keras File "/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/init.py", line 3, in from . import utils File "/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/utils/init.py", line 26, in from .vis_utils import model_to_dot File "/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/utils/vis_utils.py", line 7, in from ..models import Model File "/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/models.py", line 10, in from .engine.input_layer import Input File "/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/engine/init.py", line 3, in from .input_layer import Input File "/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/engine/input_layer.py", line 7, in from .base_layer import Layer File "/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/engine/base_layer.py", line 12, in from .. import initializers File "/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/initializers/init.py", line 22, in from keras.initializers import initializers_v1 File "/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/initializers/initializers_v1.py", line 21, in _v1_zeros_initializer = tf.compat.v1.zeros_initializer AttributeError: module 'tensorflow._api.v1.compat.v2.compat' has no attribute 'v1' 代码没改动,不知道是不是版本的问题。

Atakey commented 3 years ago

环境 tensorboard 1.14.0 tensorflow 1.14.0 tensorflow-estimator 1.14.0 Keras 2.3.1 Keras-Applications 1.0.8 keras-nightly 2.5.0.dev2021032900 Keras-Preprocessing 1.1.2 bert4keras 0.10.6

然后执行 GlobalPointer$ python PeopleDaily_GlobalPointer.py /anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:516: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint8 = np.dtype([("qint8", np.int8, 1)]) /anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:517: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_quint8 = np.dtype([("quint8", np.uint8, 1)]) /anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:518: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint16 = np.dtype([("qint16", np.int16, 1)]) /anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:519: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_quint16 = np.dtype([("quint16", np.uint16, 1)]) /anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:520: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint32 = np.dtype([("qint32", np.int32, 1)]) /anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:525: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. np_resource = np.dtype([("resource", np.ubyte, 1)]) /anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:541: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint8 = np.dtype([("qint8", np.int8, 1)]) /anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:542: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_quint8 = np.dtype([("quint8", np.uint8, 1)]) /anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:543: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint16 = np.dtype([("qint16", np.int16, 1)]) /anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:544: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_quint16 = np.dtype([("quint16", np.uint16, 1)]) /anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:545: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint32 = np.dtype([("qint32", np.int32, 1)]) /anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:550: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. np_resource = np.dtype([("resource", np.ubyte, 1)]) Using TensorFlow backend. Traceback (most recent call last): File "PeopleDaily_GlobalPointer.py", line 7, in from bert4keras.backend import keras, K File "/anaconda3/envs/tensorflow/lib/python3.6/site-packages/bert4keras/backend.py", line 21, in import keras File "/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/init.py", line 3, in from . import utils File "/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/utils/init.py", line 26, in from .vis_utils import model_to_dot File "/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/utils/vis_utils.py", line 7, in from ..models import Model File "/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/models.py", line 10, in from .engine.input_layer import Input File "/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/engine/init.py", line 3, in from .input_layer import Input File "/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/engine/input_layer.py", line 7, in from .base_layer import Layer File "/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/engine/base_layer.py", line 12, in from .. import initializers File "/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/initializers/init.py", line 22, in from keras.initializers import initializers_v1 File "/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/initializers/initializers_v1.py", line 21, in _v1_zeros_initializer = tf.compat.v1.zeros_initializer AttributeError: module 'tensorflow._api.v1.compat.v2.compat' has no attribute 'v1' 代码没改动,不知道是不是版本的问题。

Tensorflow 与Keras版本对应 : https://docs.floydhub.com/guides/environments/

xinjicong commented 3 years ago

我是看的那个https://github.com/bojone/GlobalPointer/blob/main/README.md 上的环境配的~ 换了keras==2.2.5解决了 感谢!

bojone commented 3 years ago

感觉你使用的keras或tf版本,并不是你报告的版本。建议你在脚本内插入print(tf.__version__)print(keras.__version__),确认你运行代码时使用的版本号。

xinjicong commented 3 years ago

好的,感谢!现在好了~