数据格式130001,五分类任务,数据极不平衡,自定义神经网络模型,tensorflow2.0 GPU。
65399/65399 [==============================] - 33s 509us/sample - loss: 0.1677 - accuracy: 0.9143 - f1: 1.0697 - val_loss: 68.5800 - val_accuracy: 0.1722 - val_f1: 0.9133
尝试:
数据读取后有进行preprocessing.MinMaxScaler() 归一化和shuffle,学习率0.0001,优化器adam,卷积有加l2正则化和droupout rate=0.2,droup之后有加BatchNormalization。已经尝试过动态学习率,换epochs为10(考虑过拟合),换resnet18以及更小的自定义模型,效果类似。
数据划分,初始训练集(30994, 3001),验证集(2661, 3001),测试集(8653, 3001)。后对初始训练集进行数据增强(截断拼接),(65399,3001)。
问题:
model.fit(data.x_train,data.y_train,batch_size=64,epochs=100,class_weight="auto",validation_data=(data.x_validate,data.y_validate))训练集的后期损失0.0303 ,准确度 0.9912。但验证集/测试集准确度只有0.3左右,f1值也很低?找不到其他原因了 T T
数据归一化除了问题