无法为Tensor'bias / Placeholder:0'提供shape()的值,其形状为'(?,)'

时间:2018-02-07 18:08:56

标签: python tensorflow

我正在尝试使用tensorflow实现NEAT,我需要使用占位符将偏置输入设置为1(偏差具有可变大小,也就是批处理中的每个输入),并且我使用tf.add_n对所有神经元求和输出,需要我的偏差与每个神经元具有相同的大小,每个神经元(输入,输出和隐藏)具有形状[无,]。但每当我将feed_dict传递给:

feed_dict.update({
   self._bias: np.ones(100)
})

我总是在标题中收到错误:

Cannot feed value of shape () for Tensor 'bias/Placeholder:0', which has shape '(?,)'

以下是我声明占位符的代码:

self.input_nodes = inputs
self.output_nodes = outputs
self.node_evals = node_evals
self.activation = activation
self.nodes = {}

for i in self.input_nodes:
  with tf.name_scope('input_' + str(i)) as scope:
    self.nodes[i] = tf.placeholder(tf.float32, shape=[None, ])
if bias:
  with tf.name_scope('bias') as scope:
    self.nodes[len(self.input_nodes)] = \
        tf.placeholder(tf.float32, shape=[None, ])
    self._bias = self.nodes[len(self.input_nodes)]

以下是我创建feed_dict的代码,self._inputts是占位符,输入是形​​状的ndarray [100,2],_labels是标签的占位符,标签的形状为[100,1]:

feed_dict = {
  self._inputs[k]: inputs[:, k]
  for k in range(0, len(inputs[0]))
}
feed_dict.update({
  _labels[k]: labels[:, k]
  for k
    in range(0, len(labels[0]))
})
feed_dict.update({
  self._bias: np.ones(100)
})

我该怎么办?

0 个答案:

没有答案