【发布时间】:2019-07-20 11:00:47
【问题描述】:
我正在尝试构建一个将输出 2 个标签的 CNN,其中每个标签有 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 个输出,但我不确定这是否是一个好的解决方案 - 也非常欢迎对此发表任何评论
【问题讨论】:
标签: python keras neural-network conv-neural-network