Значение model.add(tf.keras.слои.Лямбда(лямбда x: x * 200))

#python #keras #lambda

Вопрос:

Что делает следующая строка кода? Как это интерпретировать?

 model.add(tf.keras.layers.Lambda(lambda x: x * 200))
 

Моя интерпретация:
Лямбда-это как функция.

 >>> f = lambda x: x   1
>>> f(3)
4
 

Во втором примере функция вызывается с помощью f(3). Но какова цель model.add?

Ответ №1:

model.add Метод добавляет слой к связанной модели Keras. Теперь аргументом этого метода обычно является слой Кераса. В вашем случае это особый вид слоя, называемый Lambda . Вы правы, что лямбда-это функция. В принципе, lambda это обычный синтаксический сахар, который позволяет объявлять простую функцию, не называя ее. Это было бы так же, как:

 def my_func(x):
    return x*200

model.add(tf.keras.layers.Lambda(my_func))
 

Как вы можете видеть, это намного больше кода для очень простой функциональности. Возвращаясь к Lambda слою, это просто применяет данную функцию ко всем узлам предыдущего слоя. Если вы не понимаете, что такое модель Keras или как работает машинное обучение, по крайней мере в широком смысле, вы можете начать с некоторых учебных пособий по этому вопросу вместо того, чтобы изучать, что делают отдельные строки кода. Таким образом, вы могли бы стать продуктивными намного быстрее.