导入 BERT 时出错:模块“tensorflow._api.v2.train”没有属性“Optimizer”

Bel*_*iri 7 python classification tensorflow bert-language-model

我尝试在Google Colab中使用bert-tensorflow,但出现以下错误:

-------------------------------------------------- ------------------------- AttributeError Traceback(最近一次调用最后一次) in () 1 import bert ----> 2 from bert import run_classifier_with_tfhub # run_classifier 3 来自 bert 导入优化 4 来自 bert 导入标记化

1 帧 /usr/local/lib/python3.6/dist-packages/bert/optimization.py in () 85 86 ---> 87 class AdamWeightDecayOptimizer(tf.train.Optimizer): 88 """一个基本的 Adam 优化器其中包括“正确的”L2 权重衰减。""" 89

AttributeError:模块“tensorflow._api.v2.train”没有属性“Optimizer”

这是我尝试过的代码:

  1. 安装库:

!pip install --upgrade --force-reinstall tensorflow !pip install --upgrade --force-reinstall tensorflow-gpu !pip install tensorflow_hub !pip install sentencepiece !pip install bert-tensorflow

  1. 运行这段代码:

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()

但遇到了同样的错误。

nee*_*l g 7

我在自己的colab笔记本上做了一些实验(下次请提供链接),发现错误信息中,有

class AdamWeightDecayOptimizer(tf.train.Optimizer):
Run Code Online (Sandbox Code Playgroud)

这是类的标题。但没有什么比tf.train.optimizer它应该是这样的:

class AdamWeightDecayOptimizer(tf.compat.v1.train.Optimizer):
Run Code Online (Sandbox Code Playgroud)

与(笑)完全相同的行存在确切问题的链接在这里