tf.concat
| Просмотреть исходный код на GitHub |
Объединяет тензоры по одному измерению.
tf.concat(
values, axis, name='concat'
)
См. также tf.tile, tf.stack, tf.repeat.
Объединяет список тензоров values по измерению axis. Если values[i].shape = [D0, D1, ... Daxis(i), ...Dn], результат объединения имеет форму
[D0, D1, ... Raxis, ...Dn]
где
Raxis = sum(Daxis(i))
То есть данные из входных тензоров объединяются вдоль axis измерения.
Количество измерений входных тензоров должно совпадать, а все измерения, кроме axis должны быть равны.
Например:
t1 = [[1, 2, 3], [4, 5, 6]]
t2 = [[7, 8, 9], [10, 11, 12]]
tf.concat([t1, t2], 0)
<tf.Tensor: shape=(4, 3), dtype=int32, numpy=
array([[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10, 11, 12]], dtype=int32)>
tf.concat([t1, t2], 1)
<tf.Tensor: shape=(2, 6), dtype=int32, numpy=
array([[ 1, 2, 3, 7, 8, 9],
[ 4, 5, 6, 10, 11, 12]], dtype=int32)>
Как и в Python, axis могут быть также отрицательными числами. Отрицательные axis интерпретируются как отсчёт с конца ранга, т.е., axis + rank(values)-тое измерение.
Например:
t1 = [[[1, 2], [2, 3]], [[4, 4], [5, 3]]]
t2 = [[[7, 4], [8, 4]], [[2, 10], [15, 11]]]
tf.concat([t1, t2], -1)
<tf.Tensor: shape=(2, 2, 4), dtype=int32, numpy=
array([[[ 1, 2, 7, 4],
[ 2, 3, 8, 4]],
[[ 4, 4, 2, 10],
[ 5, 3, 15, 11]]], dtype=int32)>
Примечание: Если вы объединяете по новому осям, рассмотрите использование stack. Например:
tf.concat([tf.expand_dims(t, axis) for t in tensors], axis)
может быть переписано как
tf.stack(tensors, axis=axis)
| Аргументы | |
|---|---|
values | Список Tensor объектов или один Tensor. |
axis | 0-мерное int32 Tensor. Измерение, по которому выполняется объединение. Должно находиться в диапазоне [-rank(values), rank(values)). Как и в Python, индексация для оси основана на 0. Положительная ось в диапазоне [0, rank(values)) относится к axis-му измерению. Отрицательная ось относится к axis + rank(values)-му измерению. |
name | Имя операции (необязательно). |
| Возвращает | |
|---|---|
Tensor результат объединения входных тензоров. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.3/api_docs/python/tf/concat