The RepeatVector
есть для этой цели (см Keras документация).
Вы хотите, чтобы ваша форма вывода была (2, 2)
, или массив из двух координат с двумя входами каждый.
num_outputs = 2
num_elements = 2
После добавления слоев для обработки ввода в сеть, добавить RepeatVector
. Это позволит получить массив данных в качестве вывода. Ваш последний слой должен выводить num_elements
так, например:
model.add(RepeatVector(num_outputs))
# Optional layers can be inserted here
model.add(Dense(num_elements))
В двух словах, повторяющиеся векторы скопировать содержание предыдущего слоя для отправки дополнительных узлов, и каждый путь будет выводить массив num_elements
, давая вам желаемая форма вывода. Обратите внимание, что ваши данные обучения (метки) должны также состоять из массивов (2, 2)
.
Вы можете, очевидно, изменить выход, чтобы добавить измерение; сеть все равно может вернуть вектор. Я думаю, вопрос в том, почему вы хотите 2D-выход - существуют ли дополнительные ограничения на выходные значения? –
Это конкретные координаты, и я сомневаюсь, что если я передам его в сеть, например [x1, y1, x2, y2], сеть не будет рассматривать связь между ними, поэтому я хочу передать ее в такую сеть. Я прав? – Panda
, а также как установить настройку плотного слоя для [(x1, y1), ...], я имею в виду, каково должно быть количество выходных нейронов в этом? model.add (Dense (2, init = 'uniform', activation = 'sigmoid')) – Panda