session.run使用tensorflow实现成对cnn时出错

session.run使用tensorflow实现成对cnn时出错,tensorflow,Tensorflow,我对tensorflow很陌生。现在我正在实现一个成对的cnn模型。当我发现错误时: tensorflow.python.pywrap\u tensorflow.StatusNotOK:未找到: FeedInputs:找不到提要输出占位符:0 该错误归因于以下代码: \u,列车损耗,列车特性1,列车特性2=sess.run([model.train\u op,model.cost,model.feature1,model.feature2],提要) 特别是在sess.run函数中,feed是一

我对tensorflow很陌生。现在我正在实现一个成对的cnn模型。当我发现错误时:

tensorflow.python.pywrap\u tensorflow.StatusNotOK:未找到: FeedInputs:找不到提要输出占位符:0

该错误归因于以下代码:

\u,列车损耗,列车特性1,列车特性2=sess.run([model.train\u op,model.cost,model.feature1,model.feature2],提要)
特别是在
sess.run
函数中,
feed
是一个包含输入数据和相应标签的字典
feature1
feature2
是相同神经网络的输出,最后我想比较
feature1
feature2

主要代码如下:

使用self.graph.device('/gpu:1'): self.inputs1=tf.placeholder(tf.float32[self.batchSize,self.inputH,self.inputW,hp.channel]) self.inputs2=tf.placeholder(tf.float32[self.batchSize,self.inputH,self.inputW,hp.channel]) self.labels=tf.placeholder(tf.float32[self.batchSize]) self.feature1=正向(self.inputs1) self.feature2=正向(self.inputs2) self.cost=tf.reduce_sum(tf.mul(-1.0*self.labels,tf.sub(self.feature1,self.feature2))) self.tvars=tf.trainable_变量() 梯度=tf梯度(自成本、自TVAR) 优化器=tf.train.MomentumOptimizer(学习率=self.learning\u率,动量=self.momentum) self.train\u op=optimizer.apply\u梯度(zip(grads,self.tvars)) 在这里,我创建了三个占位符,并执行了一些操作,如
train\u op
。Forward是我在实现中使用的神经网络。然后在培训部分,我使用
数据加载程序加载文本数据和标签。下一批()
,最后使用
sess.run()
运行优化操作。代码如下所示

xrange中b的
(数据加载程序.批处理数量):
pbar.update(int((b/data\u loader.batch\u num)*100))
睡眠时间(0.01)
maps1,maps2,labels=data\u loader.next\u batch()
feed={model.labels:labels,model.inputs1:maps1,model.inputs2:maps2}
_,列车损失,列车特性1,列车特性2=sess.run([model.train\u op,model.cost,model.feature1,model.feature2],提要)
新错误

我试图将maps1改为张量而不是numpy-ndarray,上面的错误消失了。不幸的是,出现了新的错误

文件“Train.py”,第55行,列车内,列车损耗,列车特性1,列车特性2=sess.run([model.Train\u op,model.cost,model.feature1,model.feature2],提要) 文件“/usr/lib/python2.7/site packages/tensorflow/python/client/session.py”, 第334行,运行中 np\u val=np.array(subfeed\u val,dtype=subfeed\u t.dtype.as\u numpy\u dtype) ValueError:使用序列设置数组元素


未来问题的细节:最好包含格式化文本,而不是文本的屏幕截图,并且不要包含任何有问题的代码。在任何情况下:我认为这意味着您正在创建一个
tf.placeholder
,并且在调用
sess.run
时没有为占位符提供值。你能把代码包括进来(如果太大的话,可以作为要点)让我们看看发生了什么吗?谢谢你的信息,我已经改变了我的问题,看起来更正式了。我将检查是否可以将真实数据传递到占位符。这看起来很合理,所以我仍然不确定发生了什么。你能给出完整的错误信息(不仅仅是最后一行)、你输入的张量名称(
self.input1.name
,等等)以及你输入的数据类型(
type(map1)
,等等)吗?你好@GeoffreyIrving,谢谢你的反馈。self.input1.name是占位符:0。关于类型(maps1),我尝试将其更改为张量,然后出现了新的错误,正如我前面所说的。sess.run的输入应该是真正的numpy ndarray还是张量?