python - Keras 输出层出现意外错误

标签 python machine-learning tensorflow neural-network

我正在使用 Keras 来解决二元分类问题。我正在使用 LeNet 的以下改编版本:

lenet_model = models.Sequential()
lenet_model.add(Convolution2D(filters=filt_size, kernel_size=(kern_size, 
                kern_size), padding='valid', input_shape=input_shape))
lenet_model.add(Activation('relu'))
lenet_model.add(BatchNormalization())
lenet_model.add(MaxPooling2D(pool_size=(maxpool_size, maxpool_size)))
lenet_model.add(Convolution2D(filters=64, kernel_size=(kern_size, 
                    kern_size), padding='valid'))
lenet_model.add(Activation('relu'))
lenet_model.add(MaxPooling2D(pool_size=(maxpool_size, maxpool_size)))
lenet_model.add(Convolution2D(filters=128, kernel_size=(kern_size, 
                    kern_size), padding='valid'))
lenet_model.add(Activation('relu'))
lenet_model.add(MaxPooling2D(pool_size=(maxpool_size, maxpool_size)))
lenet_model.add(Flatten())
lenet_model.add(Dense(1024, kernel_initializer='uniform'))
lenet_model.add(Activation('relu'))
lenet_model.add(Dense(512, kernel_initializer='uniform'))
lenet_model.add(Activation('relu'))
lenet_model.add(Dropout(0.2))
lenet_model.add(Dense(1, kernel_initializer='uniform'))
lenet_model.add(Activation('sigmoid'))

lenet_model.compile(loss='binary_crossentropy', optimizer=Adam(), 
                        metrics=['accuracy'])

但是我得到了这个:

ValueError: Error when checking model target: expected activation_6 to have shape (None, 1) but got array with shape (1652, 2). It gets resolved if I use 2 in the final Dense layer.

最佳答案

我建议首先检查数据的维度。训练数据集目标是二维的,但模型采用一维数据。

您已将 lenet_model.add(Dense(1, kernel_initializer='uniform')) 设置为接受二维数据。您需要设置最终的密集层形状,使其接受目标形状(None,2)

lenet_model.add(Dense(2, kernel_initializer='uniform')) 应该是这样,否则对数据进行预处理,使目标数据成为一维数据。

下次编写代码之前请考虑阅读文档。

关于python - Keras 输出层出现意外错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45055079/

相关文章:

r - 为什么我的新数据会得到相同的预测?

python - scikit : Wrong prediction for this case

python - Keras:AveragePooling1D 层和 GlobalAveragePooling1D 层之间的区别

python - tensorflow 推理时的批量归一化

tensorflow - 分布式 Tensorflow 保存失败无设备

Python 继承、元类和 type() 函数

python - 按住进行 pygame

python - 平均张量积

python - 如何找到某些单词并在 python 中打印该行?

python - 拟合中的神经网络 - 乳腺癌数据集