使用tf.concat
而不是tf.stack
有什么好处吗?它们看起来非常相似。这只是为了保证结果张量的维数与输入张量列表相同吗?
使用tf.concat
而不是tf.stack
有什么好处吗?它们看起来非常相似。这只是为了保证结果张量的维数与输入张量列表相同吗?
实际上,我误解了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]