Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

tf.debugging.enable_check_numerics

Lihat sumber di GitHub

Aktifkan tensor numeric memeriksa grafik bersatu mode bersemangat /.

The numeric Mekanisme memeriksa akan menyebabkan TensorFlow eksekusi bersemangat atau eksekusi grafik kesalahan secepat op keluaran tensor mengandung tak terhingga atau NaN.

Metode ini idempoten. Menyebutnya beberapa kali memiliki efek yang sama seperti memanggil sekali.

Metode ini berlaku hanya pada benang yang disebut.

Ketika op ini mengapung-jenis output tensor mengandung Infinity atau NaN, sebuah tf.errors.InvalidArgumentError akan dilemparkan, dengan pesan kesalahan yang mengungkapkan informasi berikut:

  • Jenis op yang dihasilkan tensor dengan numeric buruk.
  • tipe data (dtype) dari tensor tersebut.
  • Bentuk dari tensor (sejauh diketahui pada saat eksekusi bersemangat atau konstruksi grafik).
  • Nama dari grafik yang mengandung (jika tersedia).
  • (Mode Grafik saja): Tumpukan jejak penciptaan intra-grafik op, dengan batas tumpukan-tinggi dan batas jalan panjang untuk kejelasan visual. Frame tumpukan milik kode pengguna (sebagai lawan kode internal tensorflow ini) yang disorot dengan panah teks ( "->").
  • (Hanya modus Bersemangat): Berapa banyak elemen tensor menyinggung ini adalah Infinity dan NaN , masing-masing.

Setelah diaktifkan, mekanisme check-numeric bisa dinonaktifkan dengan menggunakan tf.debugging.disable_check_numerics() .

Contoh penggunaan:

  1. Penangkapan tak terhingga selama pelaksanaan dari tf.function grafik:
  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. Penangkapan NaN selama eksekusi bersemangat:
 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 Batasi dengan tinggi tumpukan jejak dicetak. Berlaku hanya untuk ops di tf.function s (grafik).
path_length_limit Batasan untuk path file termasuk dalam jejak stack dicetak. Berlaku hanya untuk ops di tf.function s (grafik).