В API-интерфейсе TensorFlow Python значение по умолчанию для activation
kwarg tf.layers.dense
равно None
, затем в документации говорится:
активация: используется функция активации.Если вы ничего не указали, активация не применяется (т. Е. «Линейная» активация: a (x) = x).
Почему бы просто не использовать функцию идентификации в качестве значения по умолчанию при определениифункционировать?например:
def dense(..., activation=lambda x: x, ...):
pass
Таким образом, вам не нужно беспокоиться о несоответствии между документацией и кодом.
Является ли это (используя None для представления функции по умолчанию) простостиль кодирования, или есть какое-то предостережение относительно использования функции в качестве значения по умолчанию для аргумента kw?
Здесь не избежать ненужных вызовов функций, поскольку функция идентификации все еще создается и вызывается, даже если None
передаетсядо activation
.Кроме того, поскольку это происходит во время построения графа, нет смысла проводить такую оптимизацию - предполагая, что это действительно оптимизация.
Исправление:
Как указывает @ y-luo,реализация tf
фактически не создает функцию идентификации.Но реализация tf.keras
делает.