2017-04-06 121 views
5

我需要在TensorFlow中创建一个矩阵来存储一些值。诀窍是矩阵必须支持动态形状。动态形状变量TensorFlow

我试图做同样的我会做numpy的:

myVar = tf.Variable(tf.zeros((x,y), validate_shape=False) 

其中x=(?)y=2。但这不起作用,因为零不支持“部分已知的TensorShape”,所以,我应该如何在TensorFlow中执行此操作?

+0

为什么你需要一个动态的形状?你不能通过使用None作为形状描述符来修复它吗? – rmeertens

+0

因为我的矩阵取决于批次中可以更改的样本数量。据我所知,tf.zeros或np.zeros都不接受形状上的None。 – gergf

+0

啊,我明白了。请问你想用这个矩阵做什么? – rmeertens

回答

1

1)您可以使用tf.fill(dims, value=0.0),它与动态形状一起使用。

2)你可以使用一个占位符变量维度,就像例如: -

m = tf.placeholder(tf.int32, shape=[]) 
x = tf.zeros(shape=[m]) 

with tf.Session() as sess: 
    print(sess.run(x, feed_dict={m: 5})) 
+0

“tf.fill(dims,value = 0.0)”操作的结果dtype是什么? – reubenjohn