Класс Multiply
Класс Multiply выполняет поэлементное умножение
входных тензоров. Слой принимает на вход список
тензоров одинаковой формы и возвращает один тензор,
каждый элемент которого равен произведению
соответствующих элементов входных тензоров.
Параметр **kwargs позволяет передать
дополнительные именованные аргументы базовому
классу Layer.
Синтаксис
tf.keras.layers.Multiply(**kwargs)
Пример
Давайте перемножим два тензора с одинаковой формой. Создадим слой и передадим ему на вход список из двух тензоров:
import tensorflow as tf
layer = tf.keras.layers.Multiply()
t1 = tf.constant([1, 2, 3, 4, 5])
t2 = tf.constant([5, 4, 3, 2, 1])
res = layer([t1, t2])
print(res)
Результат выполнения кода:
tf.Tensor([5 8 9 8 5], shape=(5,), dtype=int32)
Пример
Давайте перемножим два двумерных тензора:
<+python+>
import tensorflow as tf
layer = tf.keras.layers.Multiply()
t1 = tf.constant([[1, 2, 3], [4, 5, 6]])
t2 = tf.constant([[6, 5, 4], [3, 2, 1]])
res = layer([t1, t2])
print(res)
<-python+>
Результат выполнения кода:
tf.Tensor(
[[ 6 10 12]
[12 10 6]], shape=(2, 3), dtype=int32)
Пример
Давайте применим слой Multiply внутри
модели Sequential для перемножения
выходов двух ветвей:
import tensorflow as tf
input_a = tf.keras.Input(shape=(3,))
input_b = tf.keras.Input(shape=(3,))
mult = tf.keras.layers.Multiply()([input_a, input_b])
model = tf.keras.Model(inputs=[input_a, input_b], outputs=mult)
t1 = tf.constant([[1, 2, 3]])
t2 = tf.constant([[4, 5, 6]])
res = model([t1, t2])
print(res)
Результат выполнения кода:
tf.Tensor([[ 4 10 18]], shape=(1, 3), dtype=int32)