Я пытаюсь спроектировать сетевую архитектуру, чтобы у меня был слой следующим образом:
x = k.Input(shape=(1,))
y = k.layers.Dense(1)(x + 1) #k.backend.constant(1) -- no difference
Fx = k.models.Model(x, y)
Хотя «x + 1» является корректной операцией Tensorflow, я получаю ошибку NoneType:
AttributeError: у объекта 'NoneType' нет атрибута '_inbound_nodes'
Когда я пытаюсь использовать слой Lambda, чтобы обойти эту ситуацию, я получаю ту же ошибку:
x = k.Input(shape=(1,))
xx = k.layers.Lambda(lambda x: x[0] + x[1])(
[x, k.backend.constant(1, shape=(1,1))]
)
y = k.layers.Dense(1)(xx)
Fx = k.models.Model(x, y)
Однако я могу взломать это, выполнив:
x = k.Input(shape=(1,))
xx = k.layers.Lambda(lambda x: x[0]+1)([x, x])
y = k.layers.Dense(1)(xx)
Fx = k.models.Model(x, y)
Поскольку Tensor + (int или float) является законной операцией Tensorflow.
Я ошибаюсь в определении лямбда-слоя или это ошибка на конце Keras?