CNN(Conv2d)无法将大小为12402的数组重塑为形状(318,39,39,1)

时间:2020-05-01 13:10:15

标签: python keras deep-learning reshape cnn

我有一个训练CNN模型的数据集。我的数据集包含398个样本和330个特征,我用ExtraTreeclassifier()将特征减少到39个。我使用Conv1d创建了一个模型,效果很好,但是我想使用Conv2d创建一个CNN。
如何为x_train重塑x_testConv2D

x_train = x_train.reshape(x_train.shape[0],x_train.shape[1],x_train.shape[1],1)
x_test = x_test.reshape(x_test.shape[0],x_test.shape[1],x_test.shape[1],1)

结果:

ValueError: cannot reshape array of size 12402 into shape (318,39,39,1)

1 个答案:

答案 0 :(得分:1)

此处输入节点数不等于输出节点数。
什么意思?
12402是您的实际图像节点,而重塑节点是(318*39*39*1)==483678,它不等于12402

仅当节点数相等时才允许重塑。您必须以使所有暗的乘积等于12402

的方式进行重塑

查看类似的答案here