#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 или как работает машинное обучение, по крайней мере в широком смысле, вы можете начать с некоторых учебных пособий по этому вопросу вместо того, чтобы изучать, что делают отдельные строки кода. Таким образом, вы могли бы стать продуктивными намного быстрее.