我正在尝试组合由同一网络产生的两个输出,该网络对 4 类任务和 10 类任务进行预测。然后我希望将这些输出组合起来以给出一个长度为 14 的数组,我将其用作我的最终目标。
虽然这似乎很有效,但预测总是针对一个类,所以它产生一个概率分布,它只关心从 14 个选项中选择 1 个而不是 2 个。我真正需要它做的是提供 2 个预测,一个用于每个班级。我希望这一切都由同一个模型生产。
input = Input(shape=(100, 100), name='input')
lstm = LSTM(128, input_shape=(100, 100)))(input)
output1 = Dense(len(4), activation='softmax', name='output1')(lstm)
output2 = Dense(len(10), activation='softmax', name='output2')(lstm)
output3 = concatenate([output1, output2])
model = Model(inputs=[input], outputs=[output3])
我的问题是确定适当的损失函数和预测方法?对于预测,我可以简单地在 softmax 之后获取每一层的输出,但是我不确定如何为每个要训练的东西设置损失函数。
有任何想法吗?
非常感谢