一、准确率低的原因:
1.输入输出:比如标签错误的问题。
2.超参数设置:学习率太高或太低都不行。
3.数据模型不适配
4.数据集构造:数据太小、分类不均衡(出现频率低的样本标签改为其他)、有噪声的标签、训练集合测试集分布不同(需要打乱数据)
二、深度学习调参步骤:
1.小数据(shuffle),简单模型入手
设置优化器(比如Adam优化器学习速率3e-4),激活函数(比如ReLU或tanh),激活函数初始化(ReLU初始化推荐使用He normal,tanh初始化推荐使用Glorot normal)。
使用现成的组件,然后再构建复杂的数据管道模式(pipeline)读取文件(提高CPU/GPU使用效率http://www.enpeizhao.com/?p=514)。运行模型后,你可能会遇到形状不匹配(在调试器中逐步完成模型创建)、数据类型错误(数据转化成float32)、内存不足(张量或者数据集太大)等等问题。
检查Loss的设计合理性,观察loss胜于观察准确率(准确率是突变的),对比训练集和验证集的los