Автоматически перезаписывать символы API TF 1.x и compat.v1

Посмотреть на TensorFlow.org Запустить в Google Colab Посмотреть исходный код на GitHub Скачать блокнот

TensorFlow 2.x включает в себя множество изменений API по сравнению с TF 1.x и API tf.compat.v1 , таких как изменение порядка аргументов, переименование символов и изменение значений по умолчанию для параметров. Вручную выполнять все эти модификации было бы утомительно и подвержено ошибкам. Чтобы упростить изменения и сделать ваш переход на TF 2.x как можно более плавным, команда tf_upgrade_v2 утилиту tf_upgrade_v2, которая поможет перенести устаревший код на новый API.

Типичное использование выглядит так:

tf_upgrade_v2 \
  --intree my_project/ \
  --outtree my_project_v2/ \
  --reportfile report.txt

Это ускорит процесс обновления за счет преобразования существующих скриптов TensorFlow 1.x Python в TensorFlow 2.x.

Сценарий преобразования автоматизирует многие механические преобразования API, хотя многие API не могут быть автоматически перенесены. Он также не может полностью сделать ваш код совместимым с поведением и API TF2. Итак, это только часть вашего миграционного пути.

Модули совместимости

Некоторые символы API нельзя обновить, просто заменив строку. Те, которые не могут быть обновлены автоматически, будут сопоставлены с их расположением в модуле compat.v1 . Этот модуль заменяет символы TF 1.x, такие как tf.foo , на эквивалентную ссылку tf.compat.v1.foo . Если вы уже используете API-интерфейсы compat.v1 , импортировав TF через import tensorflow.compat.v1 as tf , скрипт tf_upgrade_v2 попытается преобразовать эти использования в несовместимые API, где это возможно. Обратите внимание, что хотя некоторые API compat.v1 совместимы с поведением TF2.x, многие — нет. Поэтому мы рекомендуем вам вручную вычитывать замены и как можно быстрее переносить их на новые API в пространстве имен tf.* вместо пространства имен tf.compat.v1 .

Из-за устаревания модуля TensorFlow 2.x (например, tf.flags и tf.contrib ) некоторые изменения нельзя обойти, переключившись на compat.v1 . Для обновления этого кода может потребоваться использование дополнительной библиотеки (например, absl.flags ) или переход на пакет в tensorflow/addons .

В оставшейся части этого руководства показано, как использовать скрипт перезаписи символов. Хотя сценарий прост в использовании, настоятельно рекомендуется использовать его как часть следующего процесса: