我制作了一个张量流模型。 但由于某种原因,总会得到NAN损失。 我想知道如何调试和查看每个张量中的每个值。
例如: -
out = tf.add(tf.matmul(outputs[-1], _weights['out']), _biases['out'])
在运行期间,我想查看此张量中的值并查看出错的位置。 我在post
中找到了类似的内容他们做这样的事情
out = tf.add(tf.matmul(outputs[-1], _weights['out']), _biases['out'])
out = tf.Print(out, [out], message="This is softmax Output: ")
但这就像这样放弃和放弃
I tensorflow/core/kernels/logging_ops.cc:79] This is softmax Output: [2.148583e-08 5.9002307e-08 -9.90654e-08...]
I tensorflow/core/kernels/logging_ops.cc:79] This is softmax Output: [nan nan nan...]
I tensorflow/core/kernels/logging_ops.cc:79] This is softmax Output: [nan nan nan...]
Iter 64, Minibatch Loss= nan, Training Accuracy= 0.01562
Testing Accuracy: 0.0
I tensorflow/core/kernels/logging_ops.cc:79] This is softmax Output: [nan nan nan...]
I tensorflow/core/kernels/logging_ops.cc:79] This is softmax Output: [nan nan nan...]
I tensorflow/core/kernels/logging_ops.cc:79] This is softmax Output: [nan nan nan...]
I tensorflow/core/kernels/logging_ops.cc:79] This is softmax Output: [nan nan nan...]
这不是真的那么有用,因为我无法查看所有的值。 我想知道是否有逐步调试选项?
答案 0 :(得分:1)
TensorFlow现在有一个名为 tfdbg 的内置调试器。它暴露了图中的中间张量以及图形结构,这样可以使您更容易调试此类问题。与print ops相比,它需要更少的代码更改,并提供更好的图形覆盖率。
请查看主HEAD的文档/教程: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/how_tos/debugger/index.md
答案 1 :(得分:0)
tf.Print()
可选参数, summarize
将显示更多结果。例如summarize=100
将显示张量的前100个元素。
(当询问问题时,不确定该功能是否存在)