我想检查我的Keras张量的一些值。我尝试使用>>> import signal
>>> import sys
>>> def sigint_handler(signal, frame):
... print('interrupted')
... sys.exit(0)
... signal.signal(signal.SIGINT, signal_handler)
File "<stdin>", line 4
signal.signal(signal.SIGINT, signal_handler)
^
SyntaxError: invalid syntax
。
我更改了Keras的包裹代码,并更改了代码backend.print_tensor
-> tf.Print
。
tf.print
此消息发生。
警告:
不推荐使用tensorflow.python.ops.logging_ops中的打印,并将在2018-08-20之后删除。
更新说明:
使用tf.print而不是tf.Print。请注意,tf.print返回一个无输出运算符,该运算符直接打印输出。在defuns或eager模式之外,除非在session.run中直接指定该运算符或将其用作其他运算符的控件依赖项,否则不会执行该运算符。这仅是图形模式下的问题。以下是如何确保tf.print在图形模式下执行的示例:
x = Dozat(21)(x) # custom Lambda layer
x = backend.print_tensor(x)
print('x : ', x, '\n\n\n')
答案 0 :(得分:0)
您的变量out
是在with块中定义的,但是您试图在定义它的块之外运行它。尝试将sess.run(out)
缩进到有效位置。
sess = tf.Session()
with sess.as_default():
tensor = tf.range(10)
print_op = tf.print(tensor)
with tf.control_dependencies([print_op]):
out = tf.add(tensor, tensor)
sess.run(out)