Ошибка импорта BERT: модуль tenensflow._api.v2.train не имеет атрибута «Оптимизатор» - PullRequest
1 голос
/ 16 апреля 2020

Я пытался использовать bert-tensorflow в Google Colab, но я получил следующую ошибку:

-------------------- -------------------------------------------------- ----- AttributeError Traceback (последний вызов был последним) в () 1 импорт bert ----> 2 из bert import run_classifier_with_tfhub # run_classifier 3 из оптимизации импорта bert 4 из токенизации импорта bert

1 кадров / usr / local / lib / python3 .6 / dist-packages / bert / optim.py in () 85 86 ---> 87 класс AdamWeightDecayOptimizer (tf.train.Optimizer): 88 "" "Основа c Оптимизатор Adam, который включает в себя «правильное» снижение веса L2. »« »89

AttributeError: модуль 'tenorflow._api.v2.train' не имеет атрибута 'Оптимизатор'

Здесь код, который я пробовал:

  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

Запустите этот код:

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 ]

0 голосов
/ 03 мая 2020

Эта проблема также сообщалась и обсуждалась на Github ,

Попробуйте изменить код строки 87 (см. Сообщение об ошибке: / usr / local / lib / python3 .6 / dist-packages / bert / optim.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.*.

0 голосов
/ 16 апреля 2020

Я провел некоторые эксперименты в своей собственной записной книжке Colab (пожалуйста, предоставьте ссылку в следующий раз) и обнаружил, что в сообщении об ошибке было

class AdamWeightDecayOptimizer(tf.train.Optimizer):

, это заголовок класса. Но нет ничего похожего на tf.train.optimizer, вместо этого оно должно быть:

class AdamWeightDecayOptimizer(tf.compat.v1.train.Optimizer):

Ссылка, где есть точная проблема с (lol) точно такой же строкой, здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...