РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
235 of 824 menu

Класс Concatenate

Класс Concatenate объединяет тензоры от нескольких слоев в один тензор. Первым параметром передается ось объединения axis, вдоль которой будет выполняться конкатенация. По умолчанию ось равна -1. Класс полезен при построении моделей с несколькими ветвями, когда выходы разных слоев нужно объединить перед последующими слоями.

Синтаксис

tf.keras.layers.Concatenate(axis=-1)

Пример

Давайте объединим два одномерных тензора по последней оси:

import tensorflow as tf layer = tf.keras.layers.Concatenate(axis=-1) t1 = tf.constant([1, 2, 3]) t2 = tf.constant([4, 5, 6]) res = layer([t1, t2]) print(res)

Результат выполнения кода:

tf.Tensor([1 2 3 4 5 6], shape=(6,), dtype=int32)

Пример

Давайте объединим два двумерных тензора по оси 0:

import tensorflow as tf layer = tf.keras.layers.Concatenate(axis=0) t1 = tf.constant([[1, 2, 3], [4, 5, 6]]) t2 = tf.constant([[7, 8, 9]]) res = layer([t1, t2]) print(res)

Результат выполнения кода:

tf.Tensor( [[1 2 3] [4 5 6] [7 8 9]], shape=(3, 3), dtype=int32)

Пример

Давайте объединим два двумерных тензора по оси 1:

import tensorflow as tf layer = tf.keras.layers.Concatenate(axis=1) t1 = tf.constant([[1, 2, 3], [4, 5, 6]]) t2 = tf.constant([[7, 8], [9, 10]]) res = layer([t1, t2]) print(res)

Результат выполнения кода:

tf.Tensor( [[ 1 2 3 7 8] [ 4 5 6 9 10]], shape=(2, 5), dtype=int32)

Пример

Давайте построим модель с двумя ветвями и объединим их выходы:

import tensorflow as tf input_a = tf.keras.Input(shape=(4,)) input_b = tf.keras.Input(shape=(4,)) branch_a = tf.keras.layers.Dense(3)(input_a) branch_b = tf.keras.layers.Dense(3)(input_b) merged = tf.keras.layers.Concatenate(axis=-1)([branch_a, branch_b]) output = tf.keras.layers.Dense(1)(merged) model = tf.keras.Model(inputs=[input_a, input_b], outputs=output) model.summary()

Результат выполнения кода:

Model: "model" __________________________________________________________________________________________________ Layer (type) Output Shape Param # Connected to ================================================================================================== input_1 (InputLayer) [(None, 4)] 0 [] input_2 (InputLayer) [(None, 4)] 0 [] dense (Dense) (None, 3) 15 ['input_1[0][0]'] dense_1 (Dense) (None, 3) 15 ['input_2[0][0]'] concatenate (Concatenate) (None, 6) 0 ['dense[0][0]', 'dense_1[0][0]'] dense_2 (Dense) (None, 1) 7 ['concatenate[0][0]'] ================================================================================================== Total params: 37 Trainable params: 37 Non-trainable params: 0 __________________________________________________________________________________________________

Смотрите также

  • слой Add,
    который поэлементно складывает входы
  • слой Multiply,
    который поэлементно умножает входы
  • слой Dot,
    который вычисляет скалярное произведение входов
  • слой Dense,
    который применяет полносвязное преобразование
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить