【发布时间】:2016-11-29 01:17:41
【问题描述】:
我正在构建一个双向 LSTM 来进行多类句子分类。
我总共有 13 个类可供选择,我将 LSTM 网络的输出乘以一个维度为 [2*num_hidden_unit,num_classes] 的矩阵,然后应用 softmax 来获得句子落入 13 个类中的一个的概率。
因此,如果我们将output[-1] 视为网络输出:
W_output = tf.Variable(tf.truncated_normal([2*num_hidden_unit,num_classes]))
result = tf.matmul(output[-1],W_output) + bias
我得到了我的[1, 13] 矩阵(假设我暂时没有处理批次)。
现在,我还知道给定句子肯定不属于给定类别,我想限制给定句子考虑的类别数量。例如,假设对于一个给定的句子,我知道它只能分为 6 个类,所以输出应该是一个维度矩阵 [1,6]。
我正在考虑的一个选项是在result 矩阵上放置一个掩码,在该矩阵中,我将对应于我想要保留的类的行乘以 1,我想要丢弃的行乘以 0,通过这种方式我只会丢失一些信息而不是重定向它。
有人知道在这种情况下该怎么办吗?
【问题讨论】:
标签: classification tensorflow text-classification