Есть ли веская причина использовать tf.concat
вместо tf.stack
? Они кажутся очень похожими. Это просто гарантировать, что результирующий тензор будет иметь такое же количество измерений, как и входной список тензоров?
Почему я должен использовать tf.concat вместо tf.stack?
Ответ 1
На самом деле, я неправильно понял, как работает 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]