近来使用tensorflow中的tf.summary模块进行调试,用来主程序运行时打印想要看的张量的形状shape, 以及值value.
虽然使用的tensorflow版本1.15.5, 即使使用tf.enable_eager_execution()也无法看到张量的实际各维的长度。
涉及到tf.summary部分的代码:
edges_0_shape = tf.Print(tf.shape(edges_0), [tf.shape(edges_0)])#注释:edges_0是一个二维tensor tf.summary.scalar('shape_edges_0', edges_0_shape)
报错信息:
tensorflow.python.framework.errors_impl.InvalidArgumentError: tags and values not the same shape: [] != [2]
原因解释:edges_0是一个tensor,是一个二维tensor,所以tf.shape(edges_0)返回值是一个[100 50]这样的一维tensor,所以应当使用tf.summary.tensor_summary(),而不是tf.summary.scalar()
修改后:
edges_0_shape = tf.Print(tf.shape(edges_0), [tf.shape(edges_0)]) tf.summary.tensor_summary('shape_edges_0', edges_0_shape)
主程序运行过程中,打印出来如下: