无法通过tf.concat()打印输出连续张量(tensorflow 1.2.1 - gpu / py36)

时间:2017-07-07 05:43:27

标签: python python-3.x tensorflow

从上个月开始学习 Tensorflow (Python绑定)。我一直在tf.concat()阅读文档,但无法解决问题,如下所示,所以我请求您的帮助!

我想要做的是查看连接张量的内容。 我试过Tensor.eval()

import tensorflow as tf 
import numpy as np 

a=np.zeros([3,3])
a_trail=np.ones([3,3])

with tf.Session() as sess:
    concatenated=tf.concat([a, a_trail], axis=0) 
    print(concatenated)
    print(type(concatenated)) 
    concatenated.eval() 
    sess.run(concatenated) 
    sess.run(tf.constant(concatenated)) 

输出

Tensor("concat_2:0", shape=(6, 3), dtype=float64)
<class 'tensorflow.python.framework.ops.Tensor'>
(nothing prints)
(nothing shows up either meh =/)
Error: List of Tensors when single Tensor expected    

tf.concat()应该返回Tensor,看起来确实如此。但为什么T.eval()sess.run()无效?

1 个答案:

答案 0 :(得分:0)

大多数TF函数都将张量作为参数。这适用于tf.concat。正如您从文档中看到的那样:

  

values:Tensor对象列表或单个Tensor。

你提供的是numpy数组而不是张量。这是一个有效的例子。

import tensorflow as tf 
import numpy as np 

a=np.zeros([3,3])
b=np.ones([3,3])

A = tf.constant(a)
B = tf.constant(b)
concatenated=tf.concat([A, B], axis=0) 

with tf.Session() as sess:
    print sess.run(concatenated)

与您的问题无关,但将图表定义与图表执行分开(您在tf.session中执行所有操作,我在外部定义所有内容并仅在会话中执行