如何使用tf.Print()打印张量完整元素,避免显示省略号?
解决tf.Print()输出张量完整元素值的问题
嘿,这个问题我太熟悉啦!你遇到的省略号是因为tf.Print()默认只会输出张量的前3个元素,要显示完整的所有元素,只需要给它加上summarize参数就行。
修改后的代码
import tensorflow as tf # 补全导入语句,原代码可能遗漏了这一步 sess = tf.Session() a = tf.constant([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]) x, y, z = tf.split(a, 3, axis=1) # 添加summarize=-1,强制输出张量的全部元素 print_out_x = tf.Print(x, [x], message='Value of x: ', name='x_value', summarize=-1) print_out_y = tf.Print(y, [y], message='Value of y: ', name='y_value', summarize=-1) print_out_z = tf.Print(z, [z], message='Value of z: ', name='z_value', summarize=-1) # 分开执行run,严格控制输出顺序为z→y→x sess.run(print_out_z) sess.run(print_out_y) sess.run(print_out_x)
关键说明
summarize参数默认值是3,也就是只输出张量的前3个元素;把它设为-1就会输出张量的所有元素,彻底解决省略号问题。- 如果你一次性执行
sess.run([print_out_x, print_out_y, print_out_z]),输出顺序可能由TensorFlow的调度逻辑决定,不一定符合预期。分开执行sess.run()可以精准控制输出顺序,得到你想要的结果:Value of z: [[3][6][9][12]] Value of y: [[2][5][8][11]] Value of x: [[1][4][7][10]]
内容的提问来源于stack exchange,提问作者Uvuvwevwevwevwe
相关产品推荐
相关产品推荐

