Я пытаюсь создать CNN, который будет выводить 2 метки, где каждая метка имеет 12 возможностей;ввод - это изображение.
Другими словами, мой желаемый вывод - A (один из 12 вариантов) и B (один из 12 различных вариантов).
С каждой меткой отдельно, конечно, это softmax, но я не мог найти, возможно ли сделать так, чтобы метки «softmax» были такими.
Ясно, что я могу вывести 24 нейрона, используяsigmoid выводит и затем нормализует вручную, но тогда сеть не будет внутренне связывать 12 вариантов в каждой группе.
Я пишу псевдопсевдокод того, что я хотел бы, если бы он существовал:
model = Sequential()
model.add(Convolution2D(64, kernel_size=3,activation='relu', input_shape=image_shape))
model.add(Flatten())
model.add(Dense(256,activation='relu'))
# pseudo-pseudo-code
model.add(Dense((12,12),activation=('softmax','softmax'))) # <- here is where I would have liked 2 softmax outputs with 12 neurons in each
Будут приветствоваться любые решения (я использую Keras, но буду рад решениям, использующим любой другой пакет, или даже сам что-нибудь кодирую).
Редактировать: я также мог бы генерировать 144 выводапредставляющих все комбинации, но я не уверен, что это будет хорошим решением - любые комментарии по этому поводу также очень приветствуются