Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用混淆矩阵求张量流_Python_Computer Vision_Scikit Learn_Tensorflow - Fatal编程技术网

Python 用混淆矩阵求张量流

Python 用混淆矩阵求张量流,python,computer-vision,scikit-learn,tensorflow,Python,Computer Vision,Scikit Learn,Tensorflow,在中,它计算准确度,但我想从中利用混淆矩阵 我立刻想到了三种不同的方法: 我尝试直接计算预测结果,而不是tensorflow中的top_k_op,然后我可以利用sklearn。但是我失败了,因为它使用了多个线程来计算() 我尝试加载经过训练的变量并为cifar10.EXCENSION指定新的占位符,但再次失败,因为它将batch_image定义为输入() 最后一种方法是定义一个新的操作来替换 但我找不到一个合适的手术可以做到这一点 这已经折磨了我好几天了。请帮忙。提前感谢。只有在对所有数据集运行

在中,它计算准确度,但我想从中利用混淆矩阵

我立刻想到了三种不同的方法:

  • 我尝试直接计算预测结果,而不是tensorflow中的top_k_op,然后我可以利用sklearn。但是我失败了,因为它使用了多个线程来计算()

  • 我尝试加载经过训练的变量并为cifar10.EXCENSION指定新的占位符,但再次失败,因为它将batch_image定义为输入()

  • 最后一种方法是定义一个新的操作来替换

    但我找不到一个合适的手术可以做到这一点


  • 这已经折磨了我好几天了。请帮忙。提前感谢。

    只有在对所有数据集运行“推断”后,才能使用sklearn的混淆矩阵。 也就是说,如果您正在修改
    eval_only
    函数,您应该将所有分数累积到某个线程安全容器(列表)中。然后在所有线程停止后(第113行),可以运行单个混淆矩阵计算


    此外,如果您想在图形中执行此操作,TensorFlow最近获得了
    混乱矩阵
    ,您可以尝试使用。这就是说,它只对批处理有效,因此您需要增加批处理以获得任何类型的分辨率或编写自定义聚合器。

    您的第一个解决方案运行良好,但并不十分完美:当示例数不是批处理数的倍数时,要评估的示例数大于实际的示例数。你有办法解决这个问题吗?提前谢谢。
    top_k_op = tf.nn.in_top_k(logits, labels, 1)