ValueError("无法使用 `eval()` 评估张量:

Posted

技术标签:

【中文标题】ValueError("无法使用 `eval()` 评估张量:【英文标题】:ValueError("Cannot evaluate tensor using `eval()`: 【发布时间】:2018-06-04 15:44:39 【问题描述】:

为什么 sess 在训练中传递给消费者,但在 eval() 中却失败了 https://github.com/JasonPrendergast/AccuracyTestingaModel

我正在执行批处理精度测试并遇到错误:ValueError("Cannot evaluate tensor using eval(): No default" ValueError:无法使用 eval() 评估张量:未注册默认会话。使用with sess.as_default() 或将显式会话传递给`eval(session=sess)

我一直在使用线程进行培训,并且将会话作为 sess 传递给消费者类没有问题,如下所示:

_, c = self.sess.run([self.optimizer, self.cost], feed_dict=x: np.array(batch_x),y: np.array(batch_y))

运行良好,我可以使用消费者类生成我的模型。但是当我尝试运行时:

result = (self.sess.run(tf.argmax(self.prediction.eval(feed_dict=x:[np.array(batch_x)]),1)))

我得到了错误

Traceback(最近一次调用最后一次): _bootstrap_inner 中的文件“C:\Users\jimbob\AppData\Local\Programs\Python\Python35\lib\threading.py”,第 914 行 自我运行() 文件“C:\Users\jimbob\AppData\Local\Programs\Python\Python35\lib\threading.py”,第 862 行,运行中 self._target(*self._args, **self._kwargs) 文件“D:/mine/jobs_network/NN_size_10k_batch/testAcc2_threads.py”,第 198 行,运行中 结果 = (self.sess.run(tf.argmax(self.prediction.eval(feed_dict=x:[np.array(batch_x)]),1))) 文件“C:\Users\jimbob\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\framework\ops.py”,第 541 行,在 eval return _eval_using_default_session(self, feed_dict, self.graph, session) _eval_using_default_session 中的文件“C:\Users\jimbob\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\framework\ops.py”,第 4071 行 raise ValueError("无法使用eval()评估张量:没有默认值" ValueError:无法使用 eval() 评估张量:未注册默认会话。使用with sess.as_default() 或将显式会话传递给eval(session=sess)

【问题讨论】:

result = (sess.run(tf.argmax(prediction.eval(feed_dict=x:[features]),1))) 当我没有线程时正在工作 【参考方案1】:

通过将result = (self.sess.run(tf.argmax(self.prediction.eval(feed_dict=x:[np.array(batch_x)]),1))) 替换为我已经达到了我想要的结果 result=self.prediction.eval(session = self.sess,feed_dict=x: np.array(batch_x)) result= np.array(result) outputarray.append(str((labellexicon[int(np.argmax(result))])))

【讨论】:

以上是关于ValueError("无法使用 `eval()` 评估张量:的主要内容,如果未能解决你的问题,请参考以下文章

ValueError:无法将字符串转换为浮点数:'"r_version"' - 将温度转换为华氏温度时

django:ValueError - 无法序列化

ValueError:无法添加 *:实例在数据库“默认”上,值在数据库“无”上

在 for 循环中使用 str.split 时出现“ValueError 太多值无法解包”

为啥我收到此错误“ValueError:无法从重复轴重新索引”?

ValueError:无法分配“'interests': ['Technology', 'Sports', 'Health'] “Consumer.interests”必须是“Interests”实例