首页 > 解决方案 > 为什么 Epoch wise Accuracy/loss 总是从高到低变化?

问题描述

请检查所附照片。

这里的模型服务于 ECG 数据的疾病分类。模型如下。但是验证和训练数据的准确性在每个时期都在从高到低变化。我该如何克服这个问题

input_img = Input(shape=(feature, depth), name='ImageInput')
x = autoencoder_model(input_img)
x = Conv1D(64, 3, activation='relu', padding='same', name='Conv1_1')(x)
x = Conv1D(64, 3, activation='relu', padding='same', name='Conv1_2')(x)
x = MaxPooling1D(2, name='pool1')(x)

x = SeparableConv1D(64, 3, activation='relu', padding='same', name='Conv2_1')(x)
x = SeparableConv1D(64, 3, activation='relu', padding='same', name='Conv2_2')(x)
x = MaxPooling1D(2, name='pool2')(x)

x = SeparableConv1D(128, 3, activation='relu', padding='same', name='Conv3_1')(x)
x = BatchNormalization(name='bn1')(x)
x = SeparableConv1D(128, 3, activation='relu', padding='same', name='Conv3_2')(x)
x = BatchNormalization(name='bn2')(x)

x = SeparableConv1D(256, 3, activation='relu', padding='same', name='Conv3_3')(x)
x = MaxPooling1D(2, name='pool3')(x)
x = Dropout(0.6, name='dropout0')(x)


x = Flatten(name='flatten')(x)
x = Dense(256, activation='relu', name='fc1')(x)
x = Dropout(0.6, name='dropout1')(x)
x = Dense(128, activation='relu', name='fc2')(x)
x = Dropout(0.25, name='dropout2')(x)
x = Dense(14, activation='softmax', name='fc3')(x)

model = Model(inputs=input_img, outputs=x ,name='classification_pre_trained_encoder')
return model`

标签: pythonkerasconv-neural-networkloss

解决方案


推荐阅读