web-dev-qa-db-ja.com

BERTのインポートエラー:モジュール 'tensorflow._api.v2.train'に属性 'Optimizer'がありません

Google Colabで_bert-tensorflow_を使用しようとしましたが、次のエラーが発生しました:

-------------------------------------------------- -------------------------()のAttributeErrorトレースバック(最新の呼び出しが最後)1 import bert ----> 2 from bert import run_classifier_with_tfhub# bert importの最適化からのrun_classifier 3、bert importのトークン化からの4

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

しかし、同じエラーが発生しました。

2

2.0ではなくtensorflow 1.15をインストールして、Google Colabで問題を修正しました。警告のみが表示されます。

!pip install tensorflow-gpu==1.15.0
1
Shima Foolad

この問題は 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 optimziers tf.keras.optimizers.* の使用が推奨されています。

0
mrk