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

时间:2019-03-29 18:10:43

标签: python tensorflow keras

我的输入只是一个具有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中?

1 个答案:

答案 0 :(得分:1)

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