Это потому, что вы непосредственно применяете бэкэнд-функцию (т. Е. K.expand_dims()
) к тензору Keras (т. Е. out
), и поэтому результатом будет тензор (а не тензор Keras).Фактически, Keras Tensor является расширенной версией Tensor и имеет дополнительные атрибуты (например, _keras_history
), которые помогают Keras построить модель.Теперь, чтобы решить эту проблему, вам просто нужно поместить бэкэнд-функцию в слой Lambda
, чтобы иметь в качестве выходного тензора Keras:
out = Lambda(lambda x: K.expand_dims(x, axis=1))(out)
То же самое относится к использованию K.concatenate()
.Однако в этом случае в Keras есть специальный слой для него:
from keras.layers import concatenate, Concatenate
# use functional interface
out_put = concatenate(branch_outputs)
# or use layer class
out_put = Concatenate()(branch_outputs)