我最近一直在尝试基于以下示例实现多类分类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对象,以便它为单个实例发出预测矢量?
非常感谢您。
答案 0 :(得分:1)
我想知道如何编码self.prediction对象,所以 发出单个实例的预测矢量?
通常tf.nn.softmax
返回一个概率向量。您只是看不到它们,因为您使用的是tf.argmax
,它返回最大值的索引。因此,您只会得到一个号码。只需删除tf.argmax,就可以了。