python - 为什么 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`
解决方案
推荐阅读
- xml - 带有 MS Edge Beta (v91) 的 Selenium 不会在没有提示的情况下下载 XML 文件(这种类型的文件可能会损坏您的设备)
- ssl - 使用 arm64 程序集的 HTTPs POST 请求
- python - Python 代码在客户端启动之前不会执行,即使 print() 正在正确执行
- javascript - 如何在 jquery 中单击获取动态元素的值
- shapefile - 如何修复错误原因:java.lang.OutOfMemoryError:geoserver 中的 Java 堆空间
- wordpress - 更改或重定向默认 WPML 语言的 Wordpress URL 代码
- java - 将 Lambda 用作 AWS Lex 的代码挂钩时出错
- python-3.x - Python3 - 在评估之前将循环输出组合在一起?
- python - 根据标签内容调整 QTabWidget 大小的问题 (PyQT)
- html - 如何使用文本框中的模式字段在 html 中使用正则表达式验证字符串?