是什么导致在张量上运行.eval()永无止境?

时间:2018-07-02 13:56:11

标签: python tensorflow

我目前正在通过this教程,内容涉及如何使用TensorFlow训练CNN并使用它基于CIFAR-10数据集对图像进行分类。运行评估脚本cifar10_eval.py时,输出是模型相对于测试集的精确度的精确度等级。相反,我想查看测试数据上每个类别的模型分类的输出。 logit的计算和存储方式是通过

# Build a graph that computes the logits predictions from the 
# inference model. 
logits = cifar10.inference(images)

运行此行之后,我编辑了脚本,以通过以下方式显示“ logits”变量的类型,其形状以及其元素的类型:

print(type(logits))
print(logits.dtype)
print(logits.shape)

哪个返回以下输出:

  

class'tensorflow.python.framework.ops.Tensor'

     

dtype:“ float32”

     

(128,10)

我假设存在128个测试图像,形状为(128,10),每个图像都被评估为10个类别中每个类别的可能性。为了显示此内容,我正在尝试以下代码:

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print(logits.eval())

此.eval()语句永远不会终止,我想知道哪里出了问题以及如何解决此问题,以便可以访问Logit?

1 个答案:

答案 0 :(得分:0)

这可能是因为您正在打开一个新会话(并使用该会话重新初始化变量!)。尝试在创建的同一会话中评估logits。但是奇怪的是它没有终止,它应该引发一个错误。另外,它是tf.Session()而不是tf.Session