У меня есть входной тензор формы (5, 2), представляющий пять точек в 2D-пространстве.
Я хотел бы взять первую точку, а затем вычесть ее из всех пяти точек.
Читая вокруг, я подумал, что могу использовать K.gather
, чтобы нарезать и повторить первый слой.
После применения его в лямбда-слое размер пакета перезаписывается:
_input = Input(shape=(5, 2))
x = Reshape((5 * 2,))(_input)
x_ = Lambda(lambda t: K.gather(t, [0, 1] * 5))(x)
, что приводит к:
__________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
==================================================================================================
input_1 (InputLayer) (None, 5, 2) 0
__________________________________________________________________________________________________
reshape_1 (Reshape) (None, 10) 0 input_1[0][0]
__________________________________________________________________________________________________
lambda_1 (Lambda) (10, 10) 0 reshape_1[0][0]
__________________________________________________________________________________________________
Что я делаю не так?
Кроме того, есть ли более простой способ сделать это?