Concatenates tensors along one dimension.
Aliases:
tf.compat.v1.concat
tf.compat.v2.concat
tf.concat(
values,
axis,
name='concat'
)
Used in the guide:
R
ag
ge
dt
e
ns
or
s``
Used in the tutorials:
B
et
te
rp
e
rf
or
ma
nc
ew
i
th
t
f.
fu
nc
ti
on
I
ma
ge
c
ap
ti
on
in
gw
i
th
v
is
ua
la
t
te
nt
io
n``N
eu
ra
lm
a
ch
in
et
r
an
sl
at
io
nw
i
th
a
tt
en
ti
on
T
ra
ns
fo
rm
er
m
od
el
f
or
l
an
gu
ag
eu
n
de
rs
ta
nd
in
g``U
ni
co
de
s
tr
in
gs
Concatenates the list of tensorsvalues
along dimensionaxis
. Ifvalues
[i].shape = [D0, D1, ... Daxis
(i), ...Dn], the concatenated result has shape
[D0, D1, ... Raxis, ...Dn]
where
Raxis = sum(Daxis(i))
That is, the data from the input tensors is joined along the axis
dimension.
The number of dimensions of the input tensors must match, and all dimensions except axis
must be equal.
For example:
t1 = [[1, 2, 3], [4, 5, 6]]
t2 = [[7, 8, 9], [10, 11, 12]]
tf.concat([t1, t2], 0) # [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
tf.concat([t1, t2], 1) # [[1, 2, 3, 7, 8, 9], [4, 5, 6, 10, 11, 12]]
# tensor t3 with shape [2, 3]
# tensor t4 with shape [2, 3]
tf.shape(tf.concat([t3, t4], 0)) # [4, 3]
tf.shape(tf.concat([t3, t4], 1)) # [2, 6]
As in Python, the axis
could also be negative numbers. Negative axis
are interpreted as counting from the end of the rank, i.e., axis
+ rank(values)-th dimension.
For example:
t1 = [[[1, 2], [2, 3]], [[4, 4], [5, 3]]]
t2 = [[[7, 4], [8, 4]], [[2, 10], [15, 11]]]
tf.concat([t1, t2], -1)
would produce:
[[[ 1, 2, 7, 4],
[ 2, 3, 8, 4]],
[[ 4, 4, 2, 10],
[ 5, 3, 15, 11]]]
tf.concat([tf.expand_dims(t, axis) for t in tensors], axis)
can be rewritten as
tf.stack(tensors, axis=axis)
Args:
values
: A list ofTensor
objects or a singleTensor
.
Returns:
A Tensor
resulting from concatenation of the input tensors.