Вам необходимо использовать слой Lambda
для выполнения пользовательских операций:
item_average = tf.keras.layers.Lambda(lambda x: tf.reduce_mean(x, axis=1, keepdims=True))(selected)
Выходные данные слоев Keras представляют собой TF-тензоры, но дополнены некоторыми дополнительными специфичными для Keras атрибутами, которые необходимы для построениямодель.Когда вы напрямую используете tf.reduce_mean
, его вывод будет Тензор без этих дополнительных атрибутов.Однако, когда вы делаете ту же операцию внутри слоя Lambda
, эти дополнительные атрибуты будут добавлены, и, следовательно, все будет работать правильно.