TensorFlow检查NaN和Inf值的张量
2020-07-16 11:15 更新
tf.check_numerics
check_numerics ( tensor, message, name = None )
请参阅指南:控制流程>调试操作
检查 NaN 和 Inf 值的张量.
当运行时,如果张量有任何不是数字(NaN) 或无穷大(Inf) 的值,就会报告一个 InvalidArgument 错误.否则,按原样通过张量.
ARGS:
- tensor:一个张量.必须是下列类型之一:half,float32,float64.
- message:一个字符串.是错误消息的前缀.
- name:操作的名称(可选).
返回:
返回一个张量,与 tensor 具有相同的类型.
参数 'tensor' 要属于以下类型才能通过 bfloat16, float16, float32, float64,返回原tensorflow。否则报InvalidArgument 错误。
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
"""
Created on Mon Aug 27 11:16:32 2018
@author: myhaspl
"""
import tensorflow as tf
a = tf.constant([[1., 2.], [3., 4.]])
b = tf.constant([[1, 2], [3, 4]])
check_a=tf.check_numerics(a,"non number")
#check_b=tf.check_numerics(b,"non number")
sess=tf.Session()
with sess:
print sess.run(check_a)
# print sess.run(check_b)
[[1. 2.] [3. 4.]]