学习一维的CNN,简单作个记录。
输入的数据一定要整理好shape,最后的输出一定要与分类情况适应,比如二分类问题,最后的Dense的数量设为1,避免出现`logits` and `labels` must have the same shape,之类的维度问题。
def create_baseline():
model = Sequential()
model.add(Conv1D(16, 3, input_shape=(25, 1)))
#第一个参数表示有16个卷积核,第二个参数表示每个卷积核大小为3,1个卷积核的输出为25-3+1=23,整体输出为23x16
model.add(Conv1D(16, 3, activation='tanh'))
model.add(MaxPooling1D(3))
model.add(Conv1D(64, 3, activation='tanh'))
# model.add(Conv1D(64, 3, activation='tanh'))
# model.add(MaxPooling1D(3))
# model.add(Conv1D(64, 3, activation='tanh'))
# model.add(Conv1D(64, 3, activation='tanh'))
model.add(MaxPooling1D(3))
model.add(Flatten())
# model.add(Dense(6, activation='softmax'))
model.add(Dense(1, activation='softmax')) #对于二分类,最后一个Dense参数设为1
plot_model(mo