我正在尝试使用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)
})
我该怎么办?