Tensorflow预测多个标记

2024-10-02 22:31:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我对TensorFlow和stackoverflow都很陌生。我正在做一个项目,在这个项目中,我应该推荐5个最适合一张照片的标签。Tensorflow为您训练了最后一层的每个标记都提供了一个预测值,它的目标是找到精度超过0.5的标记,而其他标记的预测值则小于0.1。但我如何找出是否有多个标签是最相关的标签? e、 g.对于一个红色的鸟的图像,TF(Tensorflow)给我的是bird作为最好的标签和红色作为第二好的标签,尽管两者的相关性相同。在

我的问题是如果TF足够相关,如何使TF给多于1个标记的值相等?(如果不一样的话,非常接近的数字对我来说就可以了)另外,有没有一种方法可以让我在一个.txt文件中获得这些标记的输出和它们对应的值?(问题的最后一部分以前也有人问过,但仍然没有答案,所以我想我会把它作为问题的一部分)

我的标签代码_图像.py与《诗人的张量流教程》中给出的相同。这是密码

    import tensorflow as tf
    image_path = sys.argv[1]

    image_data = tf.gfile.FastGFile(image_path, 'rb').read()

    label_lines = [line.rstrip() for line 
               in tf.gfile.GFile("/tf_files/retrained_labels.txt")]

    with tf.gfile.FastGFile("/tf_files/retrained_graph.pb", 'rb') as f:
        graph_def = tf.GraphDef()
        graph_def.ParseFromString(f.read())
        _ = tf.import_graph_def(graph_def, name='')

    with tf.Session() as sess:
        softmax_tensor = sess.graph.get_tensor_by_name('final_result:0')

        predictions = sess.run(softmax_tensor, \
                 {'DecodeJpeg/contents:0': image_data})

        top_k = predictions[0].argsort()[-len(predictions[0]):][::-1]

        for node_id in top_k:
            human_string = label_lines[node_id]
            score = predictions[0][node_id]
            print('%s (score = %.5f)' % (human_string, score))

Tags: 标记imageidnodetfdefas标签
1条回答
网友
1楼 · 发布于 2024-10-02 22:31:01

如何找出是否有一个以上的标签是最相关的标签?

如果你在每一个软层中都有一个表示最大值的标签。因此,该分数基本上是对应标签的相关性。在

有没有一种方法可以让我在一个.txt文件中得到这些标记及其相应值的输出?

是的,我们基本上eval()分数并使用f.write(content)将其写入文本文件。在

一个非常简单的代码块:

scores = tf.eval(test_confidence, feed_dict={....})
with open("output.txt", "wb") as f:
    for score in scores:
        f.write(score+'\n')

相关问题 更多 >