我的输入只是一个具有441行和216列的矩阵:

216个功能值

441次试用

班级总数标签6

我正在尝试在CNN模型上训练我的数据:

model = Sequential()

model.add(Conv1D(128, 5, input_shape=(441, 216)))
model.add(Activation('relu'))
model.add(Conv1D(128, 5,padding='same'))
model.add(Activation('relu'))
model.add(Dropout(0.1))
model.add(MaxPooling1D(pool_size=(8)))
model.add(Conv1D(128, 5,padding='same',))
model.add(Activation('relu'))
model.add(Conv1D(128, 5,padding='same',))
model.add(Activation('relu'))
model.add(Conv1D(128, 5,padding='same',))
model.add(Activation('relu'))
model.add(Dropout(0.2))
model.add(Conv1D(128, 5,padding='same',))
model.add(Activation('relu'))
model.add(Flatten())
model.add(Dense(10))
model.add(Activation('softmax'))
opt = keras.optimizers.rmsprop(lr=0.00001, decay=1e-6)

model.compile(loss='categorical_crossentropy',
           optimizer=opt,metrics=['accuracy'])


这将引发错误:
ValueError:检查模型输入时出错:预期conv1d_1_input具有形状(None,441,216)但具有形状(1,441,216)的数组

如何将我的输入输入CNN?

最佳答案

您需要在第一个conv1d调用的末尾添加一个逗号:input_shape =(416,234,)
顺便说一句,在conv层之间使用“丢失”效率要低于BatchNormalisation以避免过度拟合。

关于python - 检查模型输入时发生错误:预期conv1d_1_input具有形状(None,441,216),但形状为(1,441,216)的数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55423324/

10-09 17:19