为什么sess在训练中传递给消费者但是在eval()中没有成功 https://github.com/JasonPrendergast/AccuracyTestingaModel
我正在进行批处理精度测试并遇到错误:ValueError("无法使用eval()
评估张量:无默认值"
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)))
我收到错误
追踪(最近一次通话): 文件" C:\ Users \ jimbob \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ threading.py",第914行,在_bootstrap_inner中 self.run() 文件" 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行,在运行中 result =(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) 文件" C:\ Users \ jimbob \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ site-packages \ tensorflow \ python \ framework \ ops.py",第4071行,在_eval_using_default_session中 引发ValueError("无法使用
eval()
评估张量:无默认值" ValueError:无法使用eval()
评估张量:未注册默认会话。使用with sess.as_default()
或将显式会话传递给eval(session=sess)
答案 0 :(得分:0)
通过替换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))])))