我已经实现了绝大多数的多输入模型,并且我在为 2 个传入的 logit 张量定义单个损失函数的最后几个步骤中苦苦挣扎。
可以说我有以下内容:
logits_cnn = tf.layers.dense(input1) # shape is [batch_size, num_classes] (e.g. [64,1])
logits_lstm = tf.layers.dense(input2) # shape is [batch_size, num_classes] (e.g. [64,1])
然后我想将它们提供给以下损失函数:
tf.losses.sigmoid_cross_entropy(multi_class_labels, logits, ...)
我在想这样的事情:
logits_concat = tf.concat(values = [logits_cnn, logits_lstm], axis= -1, name='concat_logits')
loss = tf.losses.sigmoid_cross_entropy(multi_class_labels= y, logits = logits_concat)
损失实现有意义吗?我觉得这不是一个概念上正确的方法。例如,如果y
is shape[64,1]
和logits_concat
is shape [64,2]
,那么我建议有 2 个类在起作用,这不是我的意图。