python - 生成预测列表

标签 python tensorflow neural-network recurrent-neural-network

使用 Tensorflow,是否有输出网络预测的方法?

我的输出一直在为 12 个类使用 One Hot Representation

[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0]
etc...

当尝试从我的模型中获取给定输入的预测时,我运行了以下代码

    prediction=tf.argmax(y,1)
    best = sess.run([prediction],feed_dict={x: batch_x, y: batch_y,
                                  seqlen: batch_seqlen})
    print("Prediction: ")
    print(best)

当我运行这段代码并打印预测时,我的输出是:

[array([1, 5, 7, 7, 7, 4, 7, 9, 4, 4, 9, 6, 7, 8, 3, 2], dtype=int64)]

我输入的批量大小是 16,所以有 16 个输出确实有意义。然而,这些都不是 OneHot 表示(不确定 tensorflow 的输出是否打算作为索引进行交互,所以 1 实际上是某种形式的 onehot

有没有一种方法可以让每个特定的 X 创建一个预测排名列表,模型在给定 X 的情况下最有可能找到什么?

这有意义吗?

最佳答案

您正在获取 1-hot 向量的 tf.argmax,所以这就是您看到索引而不是您预期的 1-hot 向量的原因。

要获得分类预测的排序列表,您可以获取预测向量并应用 values, indices = tf.nn.top_k(prediction) values 将是您的预测按降序排列,indices 将是那些排序的 values 索引。

关于python - 生成预测列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53180481/

相关文章:

python - 维恩3 : How to reposition circles and labels?

python - 保存递归函数的多个值

python - Keras MNIST 梯度下降停滞/学习非常缓慢

python - 使用 Tensorflow 2.0 并在没有 Keras 的情况下立即执行

python - 基于BasicRNNCell的网络结构是怎样的?

javascript - Neuroevolution - func 不是函数错误

python - 计算列表中的子列表

python - 如何在使用 pandas 将 xlsx 转换为 csv 后删除索引列

python - 如何限制 Keras 中权重的格式

machine-learning - 用于文件解密的神经网络 - 可能吗?