目前我使用Tensorflow制作了一个简单的MLP,其中一个隐藏层,softmax输出层(shape = [440,8196,8],标签是稀疏的),并尝试了不同的设置,例如不同的激活函数,不同的优化器。除了设置(sigmoid,SGD)之外,大多数设置都能正常工作并提供合理的收敛交叉验证结果。我使用不同的学习速率从1.0,0.1,0.001到0.0001调试到0.00001,并且训练仍然不起作用,这表明没有收敛。这让我很困惑,因为其他设置工作正常,例如(sigmoid,Adam,learning_rate = 0.001),(tanh / elu / relu,SGD,learning_rate = 0.008,每个时期减半)。
我相信所有的Tensorflow功能都很好,因为我用MNIST数据测试了这些不同的设置,一切都很有意义。 为什么只有(sigmoid,SGD)在我的个案中不起作用(我自己的数据)??? 根据我有限的经验," sigmoid"通常甚至可以忍受比#34; tanh"更大的学习率。我改变了不同的初始化方案(常量,统一),但仍无法找到问题所在。有进一步调试的建议吗?非常感谢!!!
答案 0 :(得分:0)
可能首先使用具有一个或两个单元的单层网络来测试(sigmoid,SGD),然后逐渐增加网络复杂性。这样您就可以更好地分离算法问题和张量流使用/实现问题。