Spec-Zone.ru › TensorFlow 1.15

Модуль: tf.contrib.deprecated

Псевдоним для устаревших операций tf.X_summary, не относящихся к ядру.

В TensorFlow 1.0 мы перестроили операции подсчёта итогов TensorFlow в подмодуль и внесли некоторые семантические изменения. Прежде всего, мы переместили API следующим образом:

tf.scalar_summary -> tf.compat.v1.summary.scalar
tf.histogram_summary -> tf.compat.v1.summary.histogram
tf.audio_summary -> tf.compat.v1.summary.audio
tf.image_summary -> tf.compat.v1.summary.image
tf.merge_summary -> tf.compat.v1.summary.merge
tf.merge_all_summaries -> tf.compat.v1.summary.merge_all

Мы считаем, что этот API более чистый и улучшит долгосрочную обнаруживаемость и ясность API TensorFlow. Но мы также воспользовались возможностью внести важное изменение в работу тегов итогов. «Тег» итога — это строка, которая связана с выходными данными, т. е. ключ для организации сгенерированных протобуфов.

Ранее тег мог быть любой уникальной строкой; он не был связан с операцией подсчёта итогов, генерирующей его, и не был связан с системой имён TensorFlow. Это поведение сильно затрудняло написание повторно используемых функций, которые добавляли бы операции подсчёта итогов в график. Если у вас была функция для добавления операций подсчёта итогов, вам нужно было передать tf.name_scope вручную в эту функцию, чтобы создать недублирующиеся теги. В противном случае ваша программа завершилась бы ошибкой во время выполнения из-за коллизии тегов.

Новые API подсчёта итогов в tf.summary убирают «тег» как независимую концепцию; вместо этого первым аргументом является имя узла. Таким образом, теги итогов теперь автоматически наследуют окружающий tf.name_scope и автоматически дедуплицируются при возникновении конфликта. Однако сейчас разрешены только буквенно-цифровые символы, нижние подчёркивания и слэши. Для облегчения миграции новые API автоматически преобразуют недопустимые символы в нижние подчёркивания.

В качестве примера рассмотрим следующие фрагменты кода «до» и «после»:

# Before
def add_activation_summaries(v, scope):
  tf.scalar_summary("%s/fraction_of_zero" % scope, tf.nn.fraction_of_zero(v))
  tf.histogram_summary("%s/activations" % scope, v)

# After
def add_activation_summaries(v):
  tf.compat.v1.summary.scalar("fraction_of_zero", tf.nn.fraction_of_zero(v))
  tf.compat.v1.summary.histogram("activations", v)

Теперь, если функция add_activation_summaries вызывается в правильном tf.name_scope, поведение остаётся таким же.

Поскольку это изменение изменяет поведение и может нарушить тесты, мы не можем автоматически мигрировать использование в новые API. Поэтому мы временно оставляем старые API доступными здесь в tf.contrib.deprecated.

Помимо изменения имени, описанного выше, в новые операции подсчёта итогов внесены два дальнейших изменения:

  • Аргумент «max_images» для tf.image_summary был переименован в «max_outputs» для tf.compat.v1.summary.image
  • tf.scalar_summary принимал произвольные тензоры тегов и значений. Но tf.compat.v1.summary.scalar требует единственного скалярного имени и скалярного значения. В большинстве случаев можно создать tf.compat.v1.summary.scalar в цикле, чтобы получить такое же поведение

Как и раньше, TensorBoard группирует диаграммы по верхнему tf.name_scope, что может быть неудобно, так как в новых операциях подсчёта итогов итог унаследует этот tf.name_scope без пользовательского управления. Мы планируем добавить в TensorBoard больше механизмов группировки, чтобы было возможно указать группу TensorBoard для каждого итога через API итогов.

Функции

audio_summary(...): Выводит протобуф Summary с аудио. (устаревшее)

histogram_summary(...): Выводит протобуф Summary с гистограммой. (устаревшее)

image_summary(...): Выводит протобуф Summary с изображениями. (устаревшее)

merge_all_summaries(...): Объединяет все итоги, собранные в стандартном графике. (устаревшее)

merge_summary(...): Объединяет итоги. (устаревшее)

scalar_summary(...): Выводит протобуф Summary со скалярными значениями. (устаревшее)

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/contrib/deprecated

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API