首页 文章

执行sess.run()时出错

提问于
浏览
0

我想执行我的图模型,但我遇到了困难 . 代码是:

epoch_x, epoch_y = features, labels
sess.run(optimizer, feed_dict = {"x:0": epoch_x, "y:0": epoch_y})

而错误是:

------------------------------------------------- -------------------------- KeyError Traceback(最近一次调用最后一次)D:\ AnacondaIDE \ lib \ site-packages \ tensorflow \ python \ client _run中的\ session.py(self,handle,fetches,feed_dict,options,run_metadata)1067 subfeed_t = self.graph.as_graph_element(subfeed,allow_tensor = True, - > 1068 allow_operation = False)1069除了异常为e:D:\ as_graph_element中的AnacondaIDE \ lib \ site-packages \ tensorflow \ python \ framework \ ops.py(self,obj,allow_tensor,allow_operation)2707 with self._lock: - > 2708 return self._as_graph_element_locked(obj,allow_tensor,allow_operation)2709 D :\ _AnacondaIDE \ lib \ site-packages \ tensorflow \ python \ framework \ ops.py in _as_graph_element_locked(self,obj,allow_tensor,allow_operation)2749“存在 . 操作%s,不存在于” - > 2750“图形 . ” %(repr(name),repr(op_name)))2751尝试:KeyError:“名称'x:0'指的是不存在的Tensor . 图中不存在'x'操作 . ”在处理上述异常期间,发生了另一个异常:TypeError Traceback(最近一次调用last)()22#feed_dict = {x:epoch_x,y:epoch_y} 23 ---> 24 sess.run(optimizer,feed_dict = { “x:0”:epoch_x,“y:0”:epoch_y})25 train_loss.append(sess.run(cost,feed_dict = {x:epoch_x,y:epoch_y}))26 train_accuracy.append(sess.run( accr,feed_dict = {x:epoch_x,y:epoch_y}))D:\ AnacondaIDE \ lib \ site-packages \ tensorflow \ python \ client \ session.py in run(self,fetches,feed_dict,options,run_metadata)893试试:894 result = self._run(None,fetches,feed_dict,options_ptr, - > 895 run_metadata_ptr)896如果run_metadata:897 proto_data = tf_session.TF_GetBuffer(run_metadata_ptr)D:\ AnacondaIDE \ lib \ site-packages \ tensorflow \ python \ _run中的client \ session.py(self,handle,fetches,feed_dict,options,run_metadata)1069除了异常为e:1070引发TypeError('无法将feed_dict键解释为Tensor:' - > 1071 e.args [0])1072 1073 if isinstance(subfeed_val,ops.Tensor):TypeErro r:无法将feed_dict键解释为Tensor:名称“x:0”指的是不存在的Tensor . 图中不存在操作'x' .

我也尝试过以下声明:

sess.run(optimizer, feed_dict = {"x": epoch_x, "y": epoch_y})

然后错误是:

------------------------------------------------- -------------------------- NameError Traceback(最近一次调用最后一次)在()22#feed_dict = {x:epoch_x,y:epoch_y} 23 ---> 24 sess.run(optimizer,feed_dict = {x:epoch_x,y:epoch_y})25 train_loss.append(sess.run(cost,feed_dict = {x:epoch_x,y:epoch_y}))26 train_accuracy .append(sess.run(accr,feed_dict = {x:epoch_x,y:epoch_y}))NameError:名称'x'未定义

请注意 print(features.shape) 产生:

(4000,6000,3)

我正在使用Tensorflow-gpu(1.3.0) .

1 回答

  • 3

    在feed dict中应该没有引号,但键应该是指向要输入的占位符的python变量 .

    例如,如果在声明占位符时有类似的东西

    pl_ = tf.placeholder(...., name='placeholder_1')
    

    那你应该跑吧

    sess.run(...., feed_dict={pl_: value})
    

    而不是这个

    sess.run(..., feed_dict={'placeholder_1': value})
    

相关问题