我尝试在Google Colab中使用bert-tensorflow
,但出现以下错误:
--------------------------------------------------- ---------------------------- AttributeError Traceback(最近一次调用 最后)在() 1个进口伯特 ----> 2从bert导入run_classifier_with_tfhub#run_classifier 3从bert导入优化 4来自bert导入令牌化
1帧/usr/local/lib/python3.6/dist-packages/bert/optimization.py 在()中 85 86 -> 87类AdamWeightDecayOptimizer(tf.train.Optimizer): 88“”“基本的Adam优化器,包括”正确的“ L2权重衰减。”“” 89
AttributeError:模块'tensorflow._api.v2.train'没有属性 “优化程序”
这是我尝试的代码:
!pip install --upgrade --force-reinstall tensorflow
!pip install --upgrade --force-reinstall tensorflow-gpu
!pip install tensorflow_hub
!pip install sentencepiece
!pip install bert-tensorflow
from sklearn.model_selection import train_test_split
import pandas as pd
from datetime import datetime
from tensorflow.keras import optimizers
import bert
from bert import run_classifier
from bert import optimization
from bert import tokenization
我也尝试过
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
但是有同样的错误。
答案 0 :(得分:3)
我在自己的colab笔记本中进行了一些实验(请提供下一次链接),发现错误消息中有
class AdamWeightDecayOptimizer(tf.train.Optimizer):
这是该类的标题。但是没有类似tf.train.optimizer
的东西应该是:
class AdamWeightDecayOptimizer(tf.compat.v1.train.Optimizer):
与(lol)完全相同的行存在确切问题的链接为here
答案 1 :(得分:3)
import tensorflow as tf
print(tf.__version__)
!pip uninstall tensorflow==2.2.0
!pip install tensorflow==1.15.0
!pip install bert-tensorflow
尝试一下。对于同一问题它对我有用
答案 2 :(得分:3)
我通过安装tensorflow 1.15而不是2.0解决了Google colab中的问题。我只会收到警告。
!pip install tensorflow-gpu==1.15.0
答案 3 :(得分:0)
此问题也已在Github上进行了报道和讨论,
尝试从以下位置更改第87行的代码(请参见错误消息:/usr/local/lib/python3.6/dist-packages/bert/optimization.py)
tf.train.Optimizer
# change to
tf.keras.optimizers.Optimizer
您使用的是TF 1.x还是TF 2.0?通常,tf.train.Optimizer
在TF 2.0中已被弃用,您需要使用tf.compat.v1.Optimizer
(然后将显示弃用消息,但这仅是警告)。在TF 2.0中,建议使用Keras优化器tf.keras.optimizers.*
。