我是tensorflow的新手。我有一个张量score
,我正在尝试创建一个形状为score.shape[0]
的张量变量。
score = tf.constant(np.array([[10, 0, -5], [4, 3, 0], [-3, 0, 11]]),
dtype=tf.float32)
v = tf.Variable(tf.zeros(tf.shape(score)[0]))
但我收到错误:ValueError: Shape must be rank 1 but is rank 0 for 'zeros_2' (op: 'Fill') with input shapes: [], [].
。想知道我哪里出错了。
答案 0 :(得分:0)
您可以使用score.shape[0]
获取score
张量的第一个维度:
sess = tf.InteractiveSession()
score = tf.constant(np.array([[10, 0, -5], [4, 3, 0], [-3, 0, 11]]),dtype=tf.float32)
v = tf.Variable(tf.zeros(score.shape[0]))
tf.global_variables_initializer().run()
v.eval()
# array([ 0., 0., 0.], dtype=float32)
tf.shape
返回张量,需要先进行评估才能使用它:
sess = tf.InteractiveSession()
score = tf.constant(np.array([[10, 0, -5], [4, 3, 0], [-3, 0, 11]]),dtype=tf.float32)
v = tf.Variable(tf.zeros(tf.shape(score).eval()[0]))
tf.global_variables_initializer().run()
v.eval()
# array([ 0., 0., 0.], dtype=float32)