gpt4 book ai didi

python - tf.confusion_matrix 和 InvalidArgumentError

转载 作者:行者123 更新时间:2023-12-01 01:59:25 28 4
gpt4 key购买 nike

我正在尝试从 here 运行 train.py 。它基于this tutorial 。我想找到混淆矩阵,并在 train.py 的最后一行之后添加:

confusionMatrix = tf.confusion_matrix(labels=y_true_cls,predictions=y_pred_cls)

with session.as_default():
print confusionMatrix.eval()

但是我收到以下错误:

InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'x' with dtype float and shape [?,128,128,3]
[[Node: x = Placeholder[dtype=DT_FLOAT, shape=[?,128,128,3], _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]

这是为什么呢?如何找到混淆矩阵?

谢谢。

最佳答案

说明

tensorflow 计算图需要计算 y_true_clsy_pred_cls 的值,以便计算您的 confusionMatrix

要计算 y_true_clsy_pred_cls,代码中定义的图表需要 xy_true 的值占位符。这些值在运行 session 时以字典的形式提供。

为这些占位符提供值后, tensorflow 图具有计算最终 confusionMatrix 值所需的输入。

代码

希望以下代码对您有所帮助。

>>> confusionMatrix = tf.confusion_matrix(labels=y_true_cls,predictions=y_pred_cls)
>>>
>>> # fetch a chunk of data
>>> batch_size = 100
>>> x_batch, y_batch, _, cls_batch = data.valid.next_batch(batch_size)
>>>
>>> # make a dictionary to be fed for placeholders `x` and `y_true`
>>> feed_dict_testing = {x: x_batch, y_true: y_batch}
>>>
>>> # now evaluate by running the session by feeding placeholders
>>> result=session.run(confusionMatrix, feed_dict=feed_dict_testing)
>>>
>>> print result

预期输出

如果分类器运行良好,那么输出应该是对角矩阵。

                  predicted
red blue
originally red [[ 15, 0],
originally blue [ 0, 15]]


PS:现在,我不在装有 Tensorflow 的机器前。所以我自己也无法验证。变量名称等可能存在一些错误。

关于python - tf.confusion_matrix 和 InvalidArgumentError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49835838/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com