如何连接N个张量? N在运行时决定

时间:2017-05-24 16:04:15

标签: tensorflow

我想做什么

M = tf.concat([tensor]*N, axix = 0) 

但现在,N是一个在运行时决定的张量。

other_tensor = tf.placeholder(dtype=tf.int32, shape=[None, 2])
N = tf.shape(other_tensor)[0] # N is None, and it is decided in run time.

那么,怎么做呢?

1 个答案:

答案 0 :(得分:1)

你应该使用tf.tile,而不是concat。要获得形状,请使用tensor.get_shape以下是一个示例:

import tensorflow as tf

a = tf.constant([[1, 2], [3, 4]])
b = tf.constant([1, 2])
c = tf.tile(a, (1, int(a.get_shape()[0])))
with tf.Session() as sess:
    print sess.run(c)

如果您需要张量的形状略有不同,请阅读tile函数中的第二个参数,并使用tf.reshape