从上个月开始学习 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()
无效?
答案 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
中执行所有操作,我在外部定义所有内容并仅在会话中执行