web-dev-qa-db-fra.com

Erreur lors de l'importation de BERT: le module 'tensorflow._api.v2.train' n'a pas d'attribut 'Optimizer'

J'ai essayé d'utiliser bert-tensorflow Dans Google Colab, mais j'ai eu l'erreur suivante:

-------------------------------------------------- ------------------------- AttributeError Traceback (dernier appel le plus récent) dans () 1 import bert ----> 2 de bert import run_classifier_with_tfhub # run_classifier 3 depuis l'optimisation de l'importation bert 4 depuis la tokenisation d'importation bert

1 frames /usr/local/lib/python3.6/dist-packages/bert/optimization.py in () 85 86 ---> 87 class AdamWeightDecayOptimizer (tf.train.Optimizer): 88 "" "Un optimiseur Adam de base qui inclut la décroissance du poids L2 "correcte". "" "89

AttributeError: le module 'tensorflow._api.v2.train' n'a pas d'attribut 'Optimizer'

Voici le code que j'ai essayé:

  1. Installez les bibliothèques:

!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. Exécutez ce code:

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

J'ai aussi essayé import tensorflow.compat.v1 as tf tf.disable_v2_behavior()

Mais j'ai eu la même erreur.

2
Belkacem Thiziri

J'ai résolu le problème dans google colab en installant tensorflow 1.15 au lieu de 2.0. Je reçois un avertissement seulement.

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

Ce problème a été signalé et discuté sur Github également,

Essayez de changer le code de la ligne 87 (voir votre message d'erreur: /usr/local/lib/python3.6/dist-packages/bert/optimization.py), depuis

tf.train.Optimizer
# change to
tf.keras.optimizers.Optimizer

Êtes-vous dans TF 1.x ou TF 2.0? En général, tf.train.Optimizer est obsolète dans TF 2.0 et vous devez utiliser tf.compat.v1.Optimizer (alors le message d'obsolescence apparaît mais il s'agit uniquement d'un avertissement). Dans TF 2.0, les optimziers Keras tf.keras.optimizers.* sont recommandés à utiliser.

0
mrk