Python Tflearn/Tensorflow值错误:“0”;无法为张量';输入形状(50、11、11)的值;TargetsData/Y:0';,其形状为';(?,1)和#x27&引用;
我是NN和tflearn的新手,最近我正在编写一个python程序,可以玩Gomoku游戏。我想用很多游戏来训练我的人际网络。这是输入(train_state),一个包含许多4*11*11 numpy数组的列表,描述当前状态:Python Tflearn/Tensorflow值错误:“0”;无法为张量';输入形状(50、11、11)的值;TargetsData/Y:0';,其形状为';(?,1)和#x27&引用;,python,tensorflow,tflearn,Python,Tensorflow,Tflearn,我是NN和tflearn的新手,最近我正在编写一个python程序,可以玩Gomoku游戏。我想用很多游戏来训练我的人际网络。这是输入(train_state),一个包含许多4*11*11 numpy数组的列表,描述当前状态: array([[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 1, 0
array([[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0],
[0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0],
[0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0],
[0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
[1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0],
[0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0],
[0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0],
[0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0],
[1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0],
[0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0]],
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
[[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]])
trian_nextmove是许多11*11数组的列表,如下所示:
array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])]
我发现即使使用最简单的网络,也会出错。
代码如下:
with tf.Graph().as_default():
g=tflearn.input_data(shape=[None,4,11,11],name='input')
g=tflearn.fully_connected(g,128,activation='relu',name="hidden1")
g=tflearn.fully_connected(g,64,activation='relu',name="hidden2")
g=tflearn.fully_connected(g,1,activation='softmax',name="output")
g=tflearn.regression(g,optimizer='adam',learning_rate=0.1,metric='R2',loss='categorical_crossentropy')
m=tflearn.DNN(g)
m.fit(train_state,train_nextmove,n_epoch=10,batch_size=50,snapshot_epoch=False,shuffle=True)
x0=train_state[34]
pred0=m.predict(x0)
打印(pred0)
打印(“保存模型”)
g、 保存('g.tflearn')在答案部分证明解决方案,即使答案出现在评论中,也是为了社区的利益
问题在于
trian\u nextmove的形状
,将shape(11,11)
的trian\u nextmove重塑为输出形状(121)解决了问题。证明了答案部分的解决方案,即使答案出现在评论中,也是为了社区的利益
问题在于
trian\u nextmove
的形状,将shape(11,11)
的trian\u nextmove重塑为输出形状(121)
解决了问题。我没有使用tflearn,但似乎最后一层是由一个神经元组成的密集层,这将使输出形状(1,)
但是您在fit
功能中通过了形状(11,11)
的目标非常感谢!我已经通过重塑trian_nextmove to output shape(121)解决了这个问题。我没有使用tflearn,但你的最后一层似乎是由一个神经元组成的密集层,这将使你的输出形状(1,)
,但是你通过了fit
函数中的shape(11,11)
,非常感谢!我已经通过重塑trian_nextmove以输出形状(121)解决了这个问题,然后它就可以工作了。