我正在使用 conv1d 对 EEG 信号进行分类,但我的 val_accuracy 停留在 0.65671。无论我做什么改变,它永远不会超过 0.65671。这是架构
model=Sequential()
model.add(Conv1D(filters=4,kernel_size=5,strides=1,padding='valid',kernel_initializer='RandomUniform',input_shape=X_train.shape[1::]))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(Conv1D(filters=6,kernel_size=3,strides=1,padding='same'))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(Dropout(0.2))
model.add(Conv1D(filters=8,kernel_size=3,strides=1,padding='valid',activation='relu'))
#model.add(Conv1D(filters=24,kernel_size=7,strides=1,padding='same',activation='relu'))
model.add(Flatten())
model.add(Dense(12,activation='relu'))
model.add(Dense(1,activation='sigmoid'))
训练数据的形状是(5073,3072,7),测试数据的形状是(1908,3072,7)。
我尝试减少每一层的神经元数量,改变激活函数,并添加更多层。但这个上限大多没有改变。
我尝试了一种二进制类的热编码,keras.utils.to_categorical(y_train,num_classes=2)但这个问题没有解决。
我试过学习率0.0001,但它不起作用。我尝试了一些kernel_initializer,optimizers但没有任何帮助
结果
Train on 5073 samples, validate on 1908 samples
Epoch 1/8
- 23s - loss: 0.6865 - acc: 0.5757 - val_loss: 0.6709 - val_acc: 0.6564
Epoch 00001: val_acc improved from -inf to 0.65645, saving model to weights.hdf5
Epoch 2/8
- 22s - loss: 0.6760 - acc: 0.5837 - val_loss: 0.6569 - val_acc: 0.6567
Epoch 00002: val_acc improved from 0.65645 to 0.65671, saving model to weights.hdf5
Epoch 3/8
- 21s - loss: 0.6661 - acc: 0.5843 - val_loss: 0.6669 - val_acc: 0.6111
Epoch 00003: val_acc did not improve from 0.65671
Epoch 4/8
- 21s - loss: 0.6622 - acc: 0.5915 - val_loss: 0.6579 - val_acc: 0.6253
Epoch 00004: val_acc did not improve from 0.65671
Epoch 5/8
- 22s - loss: 0.6575 - acc: 0.5939 - val_loss: 0.6540 - val_acc: 0.6255
Epoch 00005: val_acc did not improve from 0.65671
Epoch 6/8
- 21s - loss: 0.6554 - acc: 0.5940 - val_loss: 0.6448 - val_acc: 0.6399
Epoch 00006: val_acc did not improve from 0.65671
Epoch 7/8
- 21s - loss: 0.6511 - acc: 0.6042 - val_loss: 0.6584 - val_acc: 0.6195
Epoch 00007: val_acc did not improve from 0.65671
Epoch 8/8
- 21s - loss: 0.6487 - acc: 0.6059 - val_loss: 0.6647 - val_acc: 0.6030
Epoch 00008: val_acc did not impr
超过 0.65671