我的输入只是一个具有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具有形状(无,441、216)但具有形状(1、441、216)的数组
如何将输入内容输入到CNN中?
答案 0 :(得分:1)
您需要在第一个conv1d调用的末尾添加一个逗号:input_shape =(416,234,) 顺便说一句,在conv层之间使用“丢失”效率要低于BatchNormalisation以避免过度拟合。