softmax层输出理应是0~1的小数, 一旦只输出0或1, 那表明模型对自己的判断相当“自信”
可供参考的改善措施如下:
1、使用非线性的激活函数, 比如 relu或者tanh
2、wights 和 bias 初始化是否过大
3、学习速率是否过大
4、神经元是否过多
楼主搭建CNN做图像识别遇到此问题时, 是因为权重weights初始化过大
修改前:
修改后:
根据楼主最近使用tensorflow的经验,补充tips:
1、学习速率一般设为 1e-4 ~ 1e-7
2、bias初始化一般设为0.1
参考:https://stackoverflow.com/questions/42225143/tensorflow-why-softmax-outputs-1-0-0-0