Я пытаюсь использовать операции тензорного потока в модели keras, и я совершенно не понимаю механизм и то, что слои Lambda делают с тензорами tf.
Итак, это работает:
a = keras.layers.Input(shape=[1, 2], dtype='float', name='a')
s= keras.layers.Lambda(lambda x: tf.transpose(tf.transpose(x)))(a)
model = keras.models.Model(inputs=a, outputs=s)
но это не работает:
a = keras.layers.Input(shape=[1, 2], dtype='float', name='a')
s = tf.transpose(tf.transpose(a))
s = keras.layers.Lambda(lambda x: x)(s)
model = keras.models.Model(inputs=a, outputs=s)
и он говорит:
AttributeError: 'Tensor' object has no attribute '_keras_history'
так всегда ли необходимо упаковывать операции tf внутри слоя?
Вопрос 2 (именно поэтому я придумал предыдущий): нужно ли нам упаковывать пользовательский слой, чтобы выполнять матричное умножение в керасе?
Благодарю.