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

Python CNN(Conv2d)无法将大小为12402的阵列重塑为形状(318,39,39,1),python,keras,deep-learning,reshape,cnn,Python,Keras,Deep Learning,Reshape,Cnn,我有一个用来训练CNN模型的数据集。我的数据集包含398个样本和330个特征,我使用ExtraTreeclassifier将特征减少到39个。我用Conv1d创建了一个模型,这很好,但是我想用Conv2d创建一个CNN。 如何为Conv2D重塑我的x_训练和x_测试 x_-train=x_-train.reform x_-train.shape[0],x_-train.shape[1],x_-train.shape[1],1 x_测试=x_测试。重塑x_测试。形状[0],x_测试。形状[1],x

我有一个用来训练CNN模型的数据集。我的数据集包含398个样本和330个特征,我使用ExtraTreeclassifier将特征减少到39个。我用Conv1d创建了一个模型,这很好,但是我想用Conv2d创建一个CNN。 如何为Conv2D重塑我的x_训练和x_测试

x_-train=x_-train.reform x_-train.shape[0],x_-train.shape[1],x_-train.shape[1],1 x_测试=x_测试。重塑x_测试。形状[0],x_测试。形状[1],x_测试。形状[1],1 结果:

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

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

仅当节点数相等时才允许重塑。你必须以这样一种方式重塑,使所有dim的乘积等于12402


查看类似的答案。

我编辑了你的答案,但仍需要更好的措辞。你说的节点是什么意思?关于这一点,我留给你们作进一步的阐述,因为我不能根据我对你们意图的假设采取行动。幸运的是,这39个特性实际上是什么尺寸的?如果是这样的话,这些2d功能是否应该简单地作为39x39x1使用,或者您甚至应该使用conv2d来完成此任务?