Python 3.x 执行sess.run()时出错

Python 3.x 执行sess.run()时出错,python-3.x,tensorflow,conv-neural-network,semantic-segmentation,Python 3.x,Tensorflow,Conv Neural Network,Semantic Segmentation,我想执行我的图形模型,但我有困难。代码是: epoch_x, epoch_y = features, labels sess.run(optimizer, feed_dict = {"x:0": epoch_x, "y:0": epoch_y}) 错误是: ---------------------------------------------------------------------------KeyError回溯(最近的呼叫 最后) D:\AnacondaIDE\lib\site

我想执行我的图形模型,但我有困难。代码是:

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

---------------------------------------------------------------------------KeyError回溯(最近的呼叫 最后) D:\AnacondaIDE\lib\site packages\tensorflow\python\client\session.py 在运行中(self、handle、fetches、feed\u dict、options、run\u metadata)
1067 subfeed\u t=self.graph.as\u graph\u元素(subfeed, 允许张量=真, ->1068 allow_operation=False)1069例外情况除外,如e:

中的D:\AnacondaIDE\lib\site packages\tensorflow\python\framework\ops.py as图元素(自身、对象、允许张量、允许操作)2707
带自锁: ->2708返回自。作为图元素锁定(obj,允许张量,允许操作)2709

中的D:\AnacondaIDE\lib\site packages\tensorflow\python\framework\ops.py _由于图元素锁定(self,obj,allow_tensor,allow_operation)2749“存在。操作%s不存在 存在于 ->2750“图形”。%(repr(名称),repr(操作名称))2751尝试:

KeyError:“名称“x:0”引用了不存在的张量 图形中不存在操作“x”。“

在处理上述异常期间,发生了另一个异常:

TypeError回溯(最近的调用 最后)在() 22#feed_dict={x:epoch_x,y:epoch_y} 23 --->24 sess.run(优化器,feed_dict={“x:0”:epoch_x,“y:0”:epoch_y}) 25列丢失追加(sess.run(成本,馈送dict={x:epoch\ux,y:epoch\uy})) 26列精度追加(sess.run(accr,feed_dict={x:epoch_x,y:epoch_y}))

D:\AnacondaIDE\lib\site packages\tensorflow\python\client\session.py 运行中(自我、获取、馈送、选项、运行元数据) 893尝试: 894结果=self.\u运行(无、取数、输入、选项、, -->895运行(元数据) 896如果运行\u元数据: 897 proto_data=tf_session.tf_GetBuffer(run_metadata_ptr)

D:\AnacondaIDE\lib\site packages\tensorflow\python\client\session.py 在运行中(self、handle、fetches、feed\u dict、options、run\u metadata)
1069例外情况除外,如e:1070 TypeError('无法将提要索引键解释为张量:' ->1071+e.args[0])1072 1073如果存在(副进纸值,操作张量):

TypeError:无法将提要索引键解释为张量:名称“x:0” 指不存在的张量。操作“x”不起作用 存在于图形中

我还尝试了以下说法:

sess.run(optimizer, feed_dict = {"x": epoch_x, "y": epoch_y})
那么错误是:

---------------------------------------------------------------------------NameError回溯(最近的调用) 最后)在() 22#feed_dict={x:epoch_x,y:epoch_y} 23 --->24 sess.run(优化器,feed_dict={x:epoch_x,y:epoch_y}) 25列丢失追加(sess.run(成本,馈送dict={x:epoch\ux,y:epoch\uy})) 26列精度追加(sess.run(accr,feed_dict={x:epoch_x,y:epoch_y}))

名称错误:未定义名称“x”

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

(4000、6000、3)


我使用的是Tensorflow gpu(1.3.0)。

在提要中不应该有引号,但键应该是指向要提要的占位符的python变量

例如,如果在声明占位符时

pl_ = tf.placeholder(...., name='placeholder_1')
那么你应该运行这个

sess.run(...., feed_dict={pl_: value})
而不是这个

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

在提要dict中不应该有引号,但键应该是指向要提要的占位符的python变量

例如,如果在声明占位符时

pl_ = tf.placeholder(...., name='placeholder_1')
那么你应该运行这个

sess.run(...., feed_dict={pl_: value})
而不是这个

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

您是否尝试过按照删除引号,即:
sess.run(优化器,feed\u dict={x:epoch\u x,y:epoch\u y})
?将代码发布到您定义的位置placeholders@Ksyqoqoutes是一个问题,Pietro的回答也有帮助,因为我以前没有声明占位符。您是否尝试删除引号,即:
sess.run(优化器,feed\u dict={x:epoch\u x,y:epoch\u y})
根据?将代码发布到您定义的位置placeholders@Ksyqo库特斯是个问题,皮埃特罗的回答也有帮助,因为我以前并没有声明占位符。