Spec-Zone.ru › TensorFlow

tf.debugging.enable_check_numerics

Включает проверку числовых значений тензоров единообразно для режимов немедленного выполнения и графов.

Просмотреть псевдонимы

Псевдонимы совместимости для миграции

Подробнее см. в руководстве по миграции.

tf.compat.v1.debugging.enable_check_numerics

tf.debugging.enable_check_numerics(
    stack_height_limit=30, path_length_limit=50
)

Механизм проверки числовых значений приводит к ошибке при выполнении TensorFlow в режиме немедленного выполнения или в режиме графа, как только выходной тензор операции содержит бесконечность или NaN.

Этот метод идемпотентен. Его многократный вызов даёт тот же результат, что и однократный.

Этот метод действует только в потоке, в котором он вызван.

Если выходной тензор операции с типом данных с плавающей запятой содержит бесконечность или NaN, будет выброшено исключение tf.errors.InvalidArgumentError с сообщением об ошибке, содержащим следующие сведения:

  • Тип операции, которая создала тензор с некорректными числовыми значениями.
  • Тип данных (dtype) тензора.
  • Форма тензора (в пределах сведений, известных на момент немедленного выполнения или построения графа).
  • Имя содержащего графа (если доступно).
  • (Только в режиме графа): Трассировка стека создания операции внутри графа, с ограничением высоты стека и длины путей для удобства чтения. Кадры стека, относящиеся к пользовательскому коду (а не к внутреннему коду TensorFlow), выделяются текстовой стрелкой («->»).
  • (Только в режиме немедленного выполнения): Количество элементов проблемного тензора, которые являются Infinity и NaN соответственно.

После включения механизм проверки числовых значений можно отключить с помощью tf.debugging.disable_check_numerics().

Пример использования:

  1. Перехват бесконечности во время выполнения графа tf.function:

    import tensorflow as tf
    
    tf.debugging.enable_check_numerics()
    
    @tf.function
    def square_log_x_plus_1(x):
      v = tf.math.log(x + 1)
      return tf.math.square(v)
    
    x = -1.0
    
    # When the following line runs, a function graph will be compiled
    # from the Python function `square_log_x_plus_1()`. Due to the
    # `enable_check_numerics()` call above, the graph will contain
    # numerics checking ops that will run during the function graph's
    # execution. The function call generates an -infinity when the Log
    # (logarithm) op operates on the output tensor of the Add op.
    # The program errors out at this line, printing an error message.
    y = square_log_x_plus_1(x)
    z = -y
    
  2. Перехват NaN во время немедленного выполнения:

    import numpy as np
    import tensorflow as tf
    
    tf.debugging.enable_check_numerics()
    
    x = np.array([[0.0, -1.0], [4.0, 3.0]])
    
    # The following line executes the Sqrt op eagerly. Due to the negative
    # element in the input array, a NaN is generated. Due to the
    # `enable_check_numerics()` call above, the program errors immediately
    # at this line, printing an error message.
    y = tf.math.sqrt(x)
    z = tf.matmul(y, y)
    
Примечание: Если ваш код выполняется на TPU, перед вызовом tf.debugging.enable_check_numerics() обязательно вызовите tf.config.set_soft_device_placement(True), поскольку этот API использует автоматическую внешнюю компиляцию на TPU. Например:
tf.config.set_soft_device_placement(True)
tf.debugging.enable_check_numerics()

resolver = tf.distribute.cluster_resolver.TPUClusterResolver(tpu='')
strategy = tf.distribute.TPUStrategy(resolver)
with strategy.scope():
  # ...
Аргументы
stack_height_limit Ограничение высоты выводимой трассировки стека. Применяется только к операциям в tf.function (графах).
path_length_limit Ограничение длины пути к файлу, включаемого в выводимую трассировку стека. Применяется только к операциям в tf.function (графах).

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/debugging/enable_check_numerics

Spec-Zone.ru

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