Модуль: 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