从[tensorflow 1.00]中的softmax层提取概率

时间:2017-03-15 15:53:13

标签: python tensorflow neural-network

使用tensorflow,我有一个LSTM分类模型,softmax作为最终节点 这是我的softmax层:

with tf.name_scope("Softmax") as scope:
            with tf.variable_scope("Softmax_params"):
                softmax_w = tf.get_variable("softmax_w", [hidden_size, num_classes])
                softmax_b = tf.get_variable("softmax_b", [num_classes])
            logits = tf.nn.xw_plus_b(output, softmax_w, softmax_b) # Predicted label, eg y = tf.matmul(X, W) + b)

            loss = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=self.labels,
                                                                  logits=logits,
                                                                  name='softmax')

我的问题是,在使用新数据评估此模型时,如何提取每个类的概率?

num_class = 129

for i in range(runs):
    X_batch, y_batch = sample_batch(X_test[:200], y_test[:200], batch_size)
    predictions = sess.run([model.logits], feed_dict = {model.input: X_batch, model.keep_prob: 1.0})

1 个答案:

答案 0 :(得分:3)

只需添加一行

即可
probs = tf.nn.softmax(logits)

然后做

predictions = sess.run(model.probs, feed_dict=feed_dict)