在Keras中神经网络的维度错误

我正在尝试实现一个神经网络,其中我将一个全连接神经网络与一个卷积神经网络合并/连接。但是当我拟合模型时,我遇到了以下错误:

ValueError: 所有输入数组(x)应该具有相同数量的样本。得到的数组形状为:[(1, 100, 60, 4500), (100, 4500)]

我有两个不同的输入:

  1. 图像(尺寸:1,100,60,4500),其中1是通道,100是样本数,60*4500是我的图像的尺寸。这将输入到我的卷积神经网络

  2. 位置(尺寸:100,4500):其中100指的是样本数。

我的输出的维度是100,2。

我的神经网络的代码是:

###Convolution neural networkb1 = Sequential()b1.add(Conv2D(128*2, kernel_size=3,activation='relu',data_format='channels_first',              input_shape=(100,60,4500)))b1.add(Conv2D(128*2, kernel_size=3, activation='relu'))b1.add(Dropout(0.2))b1.add(Conv2D(128*2, kernel_size=4, activation='relu'))b1.add(Dropout(0.2))b1.add(Flatten())b1.summary()###Fully connected feed forward neural networkb2 = Sequential()b2.add(Dense(64, input_shape = (4500,), activation='relu'))b2.add(Dropout(0.1))b2.summary()model = Sequential()###Concatenating the two networksconcat = concatenate([b1.output, b2.output], axis=-1)x = Dense(256, activation='relu', kernel_initializer='normal')(concat)x = Dropout(0.25)(x)output = Dense(2, activation='softmax')(x)model = Model([b1.input, b2.input], [output])model.compile(loss=keras.losses.categorical_crossentropy,              optimizer=keras.optimizers.Adam(),              metrics=['accuracy'])history = model.fit([image, positions], Ytest, batch_size=10,              epochs=1,              verbose=1)

另外,我的’图像’数组是四维的原因是最初它只是(100,60,4500),但后来我遇到了以下错误:

ValueError: 检查输入时出错:期望conv2d_10_input具有4个维度,但得到的数组形状为(100, 60, 4500)

通过谷歌搜索,我发现它也需要通道数作为输入。在我添加了通道数后,这个错误消失了,但随后我遇到了开始时提到的另一个错误。

所以有人能告诉我如何解决这个错误(我一开始指定的那个)吗?将不胜感激。


回答:

您的样本数(批量大小)始终应该是第一个维度。因此,您的数据应该具有形状(100, 1, 60, 4500)用于图像,(100, 4500)用于位置。对于Conv2D层,channels_first参数意味着通道是第一个非批量维度。

您还需要将第一个Conv2D层的输入形状更改为(1, 60, 4500)

Related Posts

如何对SVC进行超参数调优?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

如何在初始训练后向模型添加训练数据?

我想在我的scikit-learn模型已经训练完成后再…

使用Google Cloud Function并行运行带有不同用户参数的相同训练作业

我正在寻找一种方法来并行运行带有不同用户参数的相同训练…

加载Keras模型,TypeError: ‘module’ object is not callable

我已经在StackOverflow上搜索并阅读了文档,…

在计算KNN填补方法中特定列中NaN值的”距离平均值”时

当我从头开始实现KNN填补方法来处理缺失数据时,我遇到…

使用巨大的S3 CSV文件或直接从预处理的关系型或NoSQL数据库获取数据的机器学习训练/测试工作

已关闭。此问题需要更多细节或更清晰的说明。目前不接受回…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注