Графические операции отсутствуют в реестре python

#python #macos #tensorflow #tensorflow-hub

#python #macos #тензорный поток #tensorflow-концентратор

Вопрос:

Я пытаюсь запустить пример кода из bertseq2seq/roberta24_bbc:

 import tensorflow.compat.v1 as tf
import tensorflow_hub as hub
import sentencepiece

text_generator = hub.Module(
    'https://tfhub.dev/google/bertseq2seq/roberta24_bbc/1')
input_documents = ['This is text from the first document.',
                   'This is text from the second document.']
output_summaries = text_generator(input_documents)
print(output_summaries)
  

Я создал виртуальную среду, используя Python v3.7.4, установил TFv1, как описано на веб-сайте:

 pip install "tensorflow>=1.15,<2.0"
pip install --upgrade tensorflow-hub 
  

Но при выполнении я получаю следующую ошибку:

 Exception has occurred: NotFoundError
Graph ops missing from the python registry ({'SentencepieceOp', 'SentencepieceDetokenizeOp', 'SentencepieceTokenizeOp'}) 
are also absent from the c   registry.
  

Есть идеи, как это исправить?

ОБНОВЛЕНИЕ: мой requirements.txt :

 absl-py==0.10.0
astor==0.8.1
astunparse==1.6.3
cachetools==4.1.1
certifi==2020.6.20
chardet==3.0.4
gast==0.2.2
google-auth==1.21.2
google-auth-oauthlib==0.4.1
google-pasta==0.2.0
grpcio==1.32.0
h5py==2.10.0
idna==2.10
importlib-metadata==1.7.0
Keras-Applications==1.0.8
Keras-Preprocessing==1.1.2
Markdown==3.2.2
mock==4.0.2
numpy==1.18.5
oauthlib==3.1.0
opt-einsum==3.3.0
protobuf==3.13.0
pyasn1==0.4.8
pyasn1-modules==0.2.8
requests==2.24.0
requests-oauthlib==1.3.0
rsa==4.6
scipy==1.4.1
sentencepiece==0.1.92
six==1.15.0
tensorboard==1.15.0
tensorboard-plugin-wit==1.7.0
tensorflow==1.15.3
tensorflow-estimator==1.15.1
tensorflow-hub==0.9.0
tensorflow-text==1.15.1
termcolor==1.1.0
tf-sentencepiece==0.1.92
urllib3==1.25.10
Werkzeug==1.0.1
wrapt==1.12.1
zipp==3.1.0
  

Ответ №1:

У меня была точно такая же проблема, как и у вас, но она работала в Tensorflow 2.6.0 и Python 3.9.1. Приведенные ниже решения работают как на CPU, так и на GPU.

С модифицированным примером TF1

Следующие шаги заставили пример TensorFlow Hub работать:

  • pip install tensorflow-text
  • Добавить import tensorflow_text as text в импорт Python
  • Отключить быстрое выполнение: tf.disable_eager_execution()
  • Используйте сеанс TF1 для получения результата, включая инициализацию переменных и таблиц вручную.

Полная программа выглядит следующим образом:

 import tensorflow.compat.v1 as tf
import tensorflow_hub as hub
import tensorflow_text as text

tf.disable_eager_execution()

text_generator = hub.Module('https://tfhub.dev/google/bertseq2seq/roberta24_bbc/1')
input_documents = ['This is text from the first document.',
                   'This is text from the second document.']
output_documents = text_generator(input_documents)

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    sess.run(tf.tables_initializer())
    final_output = sess.run(output_documents)

print(final_output)
  

С KerasLayer (TF2)

Несмотря на то, что в документации это не упоминается, на самом деле, похоже, это работает с KerasLayer моделями, используемыми для TF2. Если вы можете согласиться с получением большого количества предупреждений в консоли, это должно сработать:

 import tensorflow as tf
import tensorflow_hub as hub
import tensorflow_text as text

text_generator = hub.KerasLayer('https://tfhub.dev/google/bertseq2seq/roberta24_bbc/1')
input_documents = tf.constant(['This is text from the first document.',
                               'This is text from the second document.'])
output_documents = text_generator(input_documents)

print(output_documents)
  

Обратите внимание, что tf.constant для работы в этом случае документы необходимо обернуть.

Примечание: вам нужен более длинный текст документа, чтобы получить осмысленное резюме. Два примера (например, «Это текст из первого документа») не суммируются.

Ответ №2:

Sentencepiece операции были перенесены в отдельный пакет tf_sentencepiece :

 pip install tf_sentencepiece
  

Возможно, вам также придется вручную импортировать его в начале вашего скрипта, если он не работает сразу.

Комментарии:

1. Здравствуйте, спасибо за ответ, но он не сработал … та же ошибка. даже после import sentencepiece .

2. добавлен мой полный список требований к исходному сообщению