Tensorflow多类分类损失

时间:2018-09-12 05:53:05

标签: python tensorflow

我最近一直在尝试基于以下示例实现多类分类LSTM架构:biLSTM example

更改后

self.label = tf.placeholder(tf.int32, [None])

self.label = tf.placeholder(tf.int32, [None,self.n_class)

该模型似乎可以正常训练,但是我在执行此步骤时遇到了麻烦:

    self.loss = tf.reduce_mean(
        tf.nn.sparse_softmax_cross_entropy_with_logits(logits=y_hat, labels=self.label))

    # prediction
    self.prediction = tf.argmax(tf.nn.softmax(y_hat), 1)

因此,即使模型正常学习,预测对于多个变量似乎也不起作用。我想知道应该如何编码self.prediction对象,以便它为单个实例发出预测矢量?

非常感谢您。

1 个答案:

答案 0 :(得分:1)

  

我想知道如何编码self.prediction对象,所以   发出单个实例的预测矢量?

通常tf.nn.softmax返回一个概率向量。您只是看不到它们,因为您使用的是tf.argmax,它返回最大值的索引。因此,您只会得到一个号码。只需删除tf.argmax,就可以了。