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

Класс Lambda

Класс Lambda применяется для оборачивания произвольного выражения или функции в слой нейронной сети. Это удобно, когда нужно выполнить простую операцию над тензором, не создавая отдельный именованный класс слоя. Первым параметром передается функция или лямбда-выражение, вторым - необязательный параметр output_shape, задающий форму выходного тензора. Также можно передать дополнительные аргументы через arguments.

Синтаксис

tf.keras.layers.Lambda(function, [output_shape], [arguments])

Пример

Давайте создадим слой, который умножает входной тензор на 2:

import tensorflow as tf layer = tf.keras.layers.Lambda(lambda x: x * 2) t = tf.constant([1, 2, 3, 4, 5]) res = layer(t) print(res)

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

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

Пример

Давайте создадим слой, который возводит элементы входного тензора в квадрат:

<+python+> import tensorflow as tf layer = tf.keras.layers.Lambda(lambda x: x ** 2) t = tf.constant([1, 2, 3, 4, 5]) res = layer(t) print(res) <-python+>

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

tf.Tensor([ 1 4 9 16 25], shape=(5,), dtype=int32)

Пример

Давайте создадим слой, который складывает два входных тензора. Для этого передадим второй тензор через параметр arguments:

import tensorflow as tf layer = tf.keras.layers.Lambda( lambda x, y: x + y, arguments={'y': tf.constant([10, 20, 30, 40, 50])} ) t = tf.constant([1, 2, 3, 4, 5]) res = layer(t) print(res)

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

tf.Tensor([11 22 33 44 55], shape=(5,), dtype=int32)

Пример

Давайте используем слой Lambda внутри модели Keras для нормализации данных:

import tensorflow as tf model = tf.keras.Sequential([ tf.keras.layers.Input(shape=(5,)), tf.keras.layers.Lambda(lambda x: x / 255.0), tf.keras.layers.Dense(1) ]) t = tf.constant([[255.0, 128.0, 64.0, 32.0, 16.0]]) res = model(t) print(res)

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

tf.Tensor([[...]], shape=(1, 1), dtype=float32)

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

  • класс Activation,
    который применяет функцию активации к входу
  • класс Dense,
    который создает полносвязный слой нейронной сети
  • класс Reshape,
    который изменяет форму входного тензора
  • класс Flatten,
    который преобразует многомерный тензор в одномерный
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить