Я хочу сгруппировать разные узлы слоя и запустить softmax для каждой группы.
Например, я хочу иметь 81 выход для предсказания генетической последовательности, по одному выходу для каждой буквы. Для каждого выхода есть четыре возможных значения, поэтому я хочу плотный слой с 81 * 4 единицами, и я буду делать softmax по четыре узла за раз. Как бы я это сделал? Я пробовал что-то вроде этого:
def create_generator():
input = Input(shape=(152,))
x = Dense(152)(input)
x = Dense(81 * 4)(x)
x = LeakyReLU(0.2)(x)
out = []
# apply softmax in groups of four
for i in range(81):
bp = Activation('softmax')(x[i * 4:i * 4 + 3])
out.append(bp)
concatenated = concatenate(out)
generator = Model(inputs=input, outputs=concatenated)
generator.compile(optimizer=adam_optimizer(),
loss='categorical_crossentropy')
Но я получаю сообщение об ошибке "у объекта нетипа нет атрибута _inbound_nodes". Я думал, что использование сцепленного слоя из keras исправит это, но не повезло.