我从 tensorflow 开始,当涉及到张量的等级以及它们如何相互作用时,我遇到了一个巨大的问题。
我有以下代码:
w = tf.Variable(tf.constant([0.2,0.6]))
x = tf.placeholder(tf.float32)
y = w * x
如您所见,这是一个非常简单的设置。
但是,当我执行print w
输出是Tensor("Variable_13/read:0", shape=(2,), dtype=float32)
.
是什么意思shape(2,)
?逗号表示什么?
sess = tf.Session()
此外,以下是变量初始化 后的其他痛点:
print(sess.run(y,{x:[1,2]}))
[ 0.2 1.20000005]
print(sess.run(y,{x:[1]}))
[ 0.2 0.60000002]
print(sess.run(y,{x:[[1],[2]]}))
[[ 0.2 0.60000002]
[ 0.40000001 1.20000005]]
为什么我会出现如此多样的行为?tensorflow 如何确定单个数据点?我现在意识到,在声明占位符的同时指定形状可能比让自己陷入困境要好。
我理解最后两个案例,因为它们是在课堂上教授的,但我无法解释第一个案例的行为。