Tensorflow 2x — ModuleNotFoundError: нет модуля с именем ‘tensorflow.contrib’

#tensorflow #tensorflow2.0

#tensorflow #tensorflow2.0

Вопрос:

Я работаю над проектом Tensorflow, который необходимо обновить, чтобы использовать tensorflow ==2.2.0, и больше не может работать с Tensorflow 1.x из-за сопоставимости с другими пакетами.

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

   File "/opt/app-root/lib/python3.6/site-packages/tflearn/__init__.py", line 4, in <module>
    from . import config
  File "/opt/app-root/lib/python3.6/site-packages/tflearn/config.py", line 5, in <module>
    from .variables import variable
  File "/opt/app-root/lib/python3.6/site-packages/tflearn/variables.py", line 7, in <module>
    from tensorflow.contrib.framework.python.ops import add_arg_scope as contrib_add_arg_scope
ModuleNotFoundError: No module named 'tensorflow.contrib'
 

Единственная помощь, которую я могу найти в отношении этой ошибки, — понизить рейтинг.

Какой, если таковой имеется, рекомендуемый подход для перехода на Tensorflow 2.x при использовании tflearn ?

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

1. у вас есть какие-либо идеи, на какой класс tf.contrib вы передаете?

2. Я думаю, что это tflearn

3. Или add_arg_scope

4. После некоторого повторного поиска я думаю, что вы не можете перейти на tensorflow 2.0 с помощью tflearn, вся цель tflearn — это высокоуровневый api для tf 1, поэтому tf.keras находится здесь, в tf 2.0, поэтому перенос оболочки в большинстве случаев невозможен.

5. Вы пробовали это? tensorflow.org/guide/upgrade

Ответ №1:

Это невозможно напрямую. Вам нужно перестроить разные процедуры, и несколько функций должны быть соответствующим образом изменены. Между версиями 1.X и 2.X нет 100% различий, но по крайней мере некоторые функции являются новыми, а некоторые старые опции устарели. Если вы обновляете шаг за шагом, вы можете увидеть предупреждения об устаревании для обновлений следующего уровня.