Вы обязательно должны использовать keras.layers
, если есть слой, который достигает того, что вы хотите сделать.Это связано с тем, что при построении модели слои Keras принимают в качестве входных данных только тензоры Keras (т.е. выходные данные слоев).Однако выходные данные методов в keras.backend.*
не являются тензором Keras (это внутренний тензор, такой как TensorFlow Tensor
), и поэтому вы не можете передать их непосредственно в слой.
Хотя,если есть операция, которую нельзя выполнить со слоем, то для выполнения этой пользовательской операции / вычисления можно использовать методы keras.backned.*
в слое Lambda
.
Примечание: Keras Tensor на самом деле тот же тип, что и Tensor бэкэнда (например, tf.Tensor
);однако он был дополнен некоторыми дополнительными специфичными для Keras атрибутами, которые необходимы Keras при построении модели.