【问题标题】:How to find the probability of Non-convolution model tensorflow python如何找到非卷积模型tensorflow python的概率
【发布时间】:2018-08-30 07:26:54
【问题描述】:

我尝试了以下方法来找到我创建的模型的probability

X = tf.placeholder(tf.float32, [None, n_steps, n_inputs])
y = tf.placeholder(tf.float32, [None,n_outputs])
prediction=tf.argmax(y,1)

然后在尝试时代评估时:

print ("Probability Training: ", prediction.eval(feed_dict={X: x_train,y:y_train}, session=sess))})

我在我的 jupyter 笔记本中得到以下输出:

Probability Training:  [0 3 1 ... 2 2 2]

这不是概率,而是 输出中的最大值我猜的。

请帮我找出模型的概率。请注意,我的模型使用的不是convolution,而是一个简单的LSTM

【问题讨论】:

    标签: python python-3.x tensorflow jupyter


    【解决方案1】:

    您的prediction 变量是一个argmax 评估,它将为您提供最高分的索引。使用 softmax 应该会产生所需的输出,因为 softmax 会将您的分数转换为可以解释为概率的东西:

    X = tf.placeholder(tf.float32, [None, n_steps, n_inputs])
    y = tf.placeholder(tf.float32, [None,n_outputs])
    probabilities=tf.nn.softmax(y)
    

    您仍然可以在稍后阶段在概率之上抛出一个 argmax 以提取最可能的类

    【讨论】:

    • 嗨 Lukas,欢迎来到 Stackoverflow。谢谢您的回答。我会检查一下,如果它真的符合我的要求,那么猜猜我会接受你的答案...... :)
    • 只有一个查询,我的论点 y 是否正确,或者我应该使用预测的输出而不是检查预测的预期输出 y?你能帮帮我吗?
    • 是否可以得到输出概率的总和?你能帮帮我吗?
    • 您需要将tf.nn.softmax 评估应用于您的网络输出,而不是真正的标签。如果我理解正确,您将需要使用预测输出
    • 总和概率是什么意思?顶部带有 softmax 层的网络将返回每个可能类别的概率。假设您有 3 个不同的类别,样本的输出可能是 [0.6, 0.3, 0.1],这意味着网络预测样本的概率为 1 类 60%、2 类 30% 和 3 类 10%
    猜你喜欢
    • 1970-01-01
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-17
    • 1970-01-01
    • 2022-10-24
    相关资源
    最近更新 更多