第一次遇到这样的问题。
错误大约是dialogWindow.set_width("500px")
,似乎需要重新塑造feed_dict={tfkids: kids, tfkids_fit: kids_fit}
。
任何人都可以帮我解决这个问题吗?
kids_fit
尝试测试代码时会出错。
ValueError:无法为Tensor' Placeholder:0'提供形状值(10,),其形状为'(10,1)'
答案 0 :(得分:1)
你可以重塑孩子的张量。
kids = sess.run(make_kids)
kids = tf.reshape(kids,(None,1))
kids_fit = get_fitness(F(kids))
sess.run(train_op, feed_dict={tfkids: kids, tfkids_fit: kids_fit})
答案 1 :(得分:1)
Placeholder:0
为tfkids = tf.placeholder(tf.float32, [POP_SIZE, DNA_SIZE])
。
如您所见,tfkids
形状为[POP_SIZE, DNA_SIZE]
= (10, 1)
。
您的kids
变量的形状为(10)
。
虽然两个形状都包含10个值,但第一个包含2个维度,而第二个包含1个D.
因此,您必须扩展kids
变量的维度,以便以这种方式与tfkids
兼容:
sess.run(train_op, feed_dict={tfkids: np.expand_dims(kids, axis=1), tfkids_fit: kids_fit})
np.expand_dims
可让您为kids
形状
答案 2 :(得分:1)
问题:当您声明tfkids
变量时,您将其形状指定为[POP_SIZE, DNA_SIZE]
,即(10,1)。但是当您在训练期间将实际数据输入占位符时,您传递的是(10)形状的数据。
<强>解决方案:强> 因此,您必须将训练数据重新整形为(10,1),以便将其提供给变量。您可以通过多种方式重塑数据。您可以使用numpy库的重塑功能。在为您提供训练数据之前,请执行以下操作。
kids = np.reshape(kids, [-1, 1])
希望这有帮助!