为什么我会使用tf.concat而不是tf.stack?

时间:2017-01-08 15:55:47

标签: python tensorflow

是否有充分理由使用tf.concat代替tf.stack?它们看起来很相似。是否只是为了保证得到的张量与张量的输入列表具有相同的维数?

1 个答案:

答案 0 :(得分:21)

实际上,我误解了tf.stack是如何运作的。如果axis参数在现有维度的范围内,则会在该索引处插入新轴。

示例:

import tensorflow as tf

t1 = tf.random_normal([1, 3])
t2 = tf.random_normal([1, 3])

tf.stack([t1, t2], axis=1).shape.as_list() == [1, 2, 3]
tf.concat([t1, t2], axis=1).shape.as_list() == [1, 6]