此页面由 Cloud Translation API 翻译。
Switch to English

tf.debugging.enable_check_numerics

GitHub上查看源代码

启用张量NUMERICS在热切/图统一的方式检查。

该NUMERICS检查机制会造成任何TensorFlow急于执行或图形执行尽快出错误作为运算的输出张量包含无穷大或NaN。

此方法是幂等。多次调用它与调用一次的效果相同。

这种方法只对线程中调用它的效果。

当运算的浮子式输出张量包含任何无限或NaN,一个tf.errors.InvalidArgumentError将被抛出,与显示以下信息的错误消息:

  • 该类型产生不良NUMERICS张量运算的。
  • 张量的数据类型(D型)。
  • 塑造张量(在渴望或执行图构造时已知的范围内)的。
  • 含图形的名称(如果可用)。
  • (仅图形模式):在-图形帧内运算的创建的堆栈跟踪,用栈高度限制和对视觉清晰度的路径长度的限制。属于该用户的代码(与tensorflow的内部代码)堆栈帧被突出显示文本箭头(“ - >”)。
  • (只渴望模式):许多得罪张量的元素是如何InfinityNaN分别。

一旦启用,退房NUMERICS机制可以通过使用禁用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
 
  1. 渴望在执行过程中捕获楠:
 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)
 
 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 限制到印刷堆栈跟踪的高度。仅适用于在OPS tf.function S(图)。
path_length_limit 限制到包括在打印的堆栈跟踪文件路径。仅适用于在OPS tf.function S(图)。