在TensorFlow中平铺变量张量是否会创建新变量?

时间:2017-08-08 00:03:11

标签: python machine-learning tensorflow

我有一个(2x1)变量张量我定义为:

this

因此(2x1)向量中有2个变量。然后,我继续这样张贴这个张量:

W = tf.Variable(tf.random_normal([2, 1]))

我们现在有一个(2x3)张量。我的问题是:

我们知道有6个独特的变量吗?或者将2个唯一变量平铺在3列上?

1 个答案:

答案 0 :(得分:4)

它的行为与您期望的一样:原始变量是平铺的,并且没有变量创建。很容易检查:

import tensorflow as tf

W = tf.Variable(tf.zeros((2,1)))
Wt = tf.tile(W, (1,3))

sess = tf.InteractiveSession()
tf.global_variables_initializer().run()
print(Wt.eval())
# [[ 0.  0.  0.]
#  [ 0.  0.  0.]]
W[0,0].assign(1).eval()
print(Wt.eval())
# [[ 1.  1.  1.]
#  [ 0.  0.  0.]]

Wt不是变量,无法分配:

Wt[0,0].assign(1).eval()
# ValueError: Sliced assignment is only supported for variables