Python 使用非图像输入的卷积神经网络

Python 使用非图像输入的卷积神经网络,python,tensorflow,neural-network,Python,Tensorflow,Neural Network,我想使用卷积神经网络,但我有一个2D数组作为输入,而不是图像。我试图评估一个棋盘游戏状态,其中形状很重要 电路板为5x5,值可以在-1和1之间,存储为列表列表,例如: [[-1,1.0,-1,1,-1],[0,1,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[-1,0.6,-1,-1,1]] 模型的第一层是 tf.keras.layers.Conv2D(32, (3,3), input_shape=(5,5,1)) 我将电路板转换为numpy阵列 np.array([[-1

我想使用卷积神经网络,但我有一个2D数组作为输入,而不是图像。我试图评估一个棋盘游戏状态,其中形状很重要

电路板为5x5,值可以在-1和1之间,存储为列表列表,例如:

[[-1,1.0,-1,1,-1],[0,1,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[-1,0.6,-1,-1,1]]
模型的第一层是

tf.keras.layers.Conv2D(32, (3,3), input_shape=(5,5,1))
我将电路板转换为numpy阵列

np.array([[-1,1.0,-1,1,-1],[0,1,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[-1,0.6,-1,-1,1]])
我把黑板整理成一张单子。 然后我将列表转换为一个数组,以适应

model.fit(np.array(x_train_l), y_train, epochs=10)
我得到以下错误:

ValueError:layer sequential的输入0与layer::expected min\u ndim=4不兼容,found ndim=3。收到完整形状:[无,5,5]


只需重塑你的numpy数组的形状(5,5,1)。目前它的形状为(5,5)


您可以使用
data[:,:,np.newaxis]
为现有数组
data
实现相同的功能。重塑(5,5,1)和数据[:,:,np.newaxis]似乎都可以做到这一点!单击以接受此答案。。。所以它是“完成的”
 np.array([[-1,1.0,-1,1,-1],[0,1,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[-1,0.6,-1,-1,1]]).reshape(5,5,1)