error in executing sess.run()
我想执行我的图模型,但我遇到了困难。 代码是:
1 2 | epoch_x, epoch_y = features, labels sess.run(optimizer, feed_dict = {"x:0": epoch_x,"y:0": epoch_y}) |
而错误是:
--------------------------------------------------------------------------- KeyError Traceback (most recent call
last)
D:\AnacondaIDE\lib\site-packages\tensorflow\python\client\session.py
in _run(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 except Exception as e:D:\AnacondaIDE\lib\site-packages\tensorflow\python\framework\ops.py in
as_graph_element(self, obj, allow_tensor, allow_operation) 2707
with self._lock:
-> 2708 return self._as_graph_element_locked(obj, allow_tensor, allow_operation) 2709D:\AnacondaIDE\lib\site-packages\tensorflow\python\framework\ops.py in
_as_graph_element_locked(self, obj, allow_tensor, allow_operation) 2749 "exist. The operation, %s, does not
exist in the"
-> 2750 "graph." % (repr(name), repr(op_name))) 2751 try:KeyError:"The name 'x:0' refers to a Tensor which does not exist. The
operation, 'x', does not exist in the graph."During handling of the above exception, another exception occurred:
TypeError Traceback (most recent call
last) in ()
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 try:
894 result = self._run(None, fetches, feed_dict, options_ptr,
--> 895 run_metadata_ptr)
896 if run_metadata:
897 proto_data = tf_session.TF_GetBuffer(run_metadata_ptr)D:\AnacondaIDE\lib\site-packages\tensorflow\python\client\session.py
in _run(self, handle, fetches, feed_dict, options, run_metadata)
1069 except Exception as e: 1070 raise
TypeError('Cannot interpret feed_dict key as Tensor: '
-> 1071 + e.args[0]) 1072 1073 if isinstance(subfeed_val, ops.Tensor):TypeError: Cannot interpret feed_dict key as Tensor: The name 'x:0'
refers to a Tensor which does not exist. The operation, 'x', does not
exist in the graph.
我也尝试过以下声明:
1 | sess.run(optimizer, feed_dict = {"x": epoch_x,"y": epoch_y}) |
然后错误是:
--------------------------------------------------------------------------- NameError Traceback (most recent call
last) in ()
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: name 'x' is not defined
注意
(4000, 6000, 3)
我正在使用Tensorflow-gpu(1.3.0)。
在feed dict中应该没有引号,但键应该是指向要输入的占位符的python变量。
例如,如果在声明占位符时你有类似的东西
1 | pl_ = tf.placeholder(...., name='placeholder_1') |
那么你应该跑吧
1 | sess.run(...., feed_dict={pl_: value}) |
而不是这个
1 | sess.run(..., feed_dict={'placeholder_1': value}) |