РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
806 of 824 menu

Функция debugging.enable_check_numerics

Функция debugging.enable_check_numerics включает глобальный режим проверки числовой стабильности. Первым параметром передается сообщение об ошибке, которое будет добавлено к тексту исключения при обнаружении NaN или Inf. Вторым параметром можно передать функцию-фильтр, которая решает, для каких операций выполнять проверку. Третьим параметром задается максимальное количество проверяемых тензоров, хранимых в памяти.

После включения TensorFlow будет анализировать каждый тензор, проходящий через граф, и выбрасывать исключение InvalidArgumentError, если в нем появятся значения NaN или Inf. Это помогает быстро находить источник числовых ошибок в модели.

Синтаксис

tf.debugging.enable_check_numerics( message="", check_numerics_callback=None, stack_height_limit=0 )

Пример

Давайте включим проверку числовой стабильности и выполним операцию деления на ноль, чтобы получить значение Inf:

import tensorflow as tf tf.debugging.enable_check_numerics("numerics check") t = tf.constant([1.0, 2.0, 3.0]) res = t / tf.constant([1.0, 0.0, 3.0]) print(res)

Результат выполнения кода:

InvalidArgumentError: numerics check : Tensor had Inf values

Пример

Давайте отключим проверку числовой стабильности и повторим ту же операцию:

import tensorflow as tf tf.debugging.enable_check_numerics("numerics check") tf.debugging.disable_check_numerics() t = tf.constant([1.0, 2.0, 3.0]) res = t / tf.constant([1.0, 0.0, 3.0]) print(res)

Результат выполнения кода:

tf.Tensor([ 1. inf 1.], shape=(3,), dtype=float32)

Пример

Давайте передадим функцию-фильтр, которая проверяет только операции с именем div:

import tensorflow as tf def filter_fn(op_type, op_name, attrs): return "div" in op_name.lower() tf.debugging.enable_check_numerics( message="division check", check_numerics_callback=filter_fn ) t = tf.constant([1.0, 2.0, 3.0]) res = t / tf.constant([1.0, 0.0, 3.0]) print(res)

Результат выполнения кода:

InvalidArgumentError: division check : Tensor had Inf values

Смотрите также

  • функцию debugging.disable_check_numerics,
    которая отключает проверку числовой стабильности
  • функцию debugging.assert_equal,
    которая проверяет равенство двух тензоров
  • функцию debugging.assert_near,
    которая проверяет близость значений тензоров
  • функцию debugging.assert_type,
    которая проверяет тип данных тензора
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить