【问题标题】:tensorflow: proper learning rate for "sigmoid" with "SGD" for MLPtensorflow:MLP 的“sigmoid”和“SGD”的适当学习率
【发布时间】:2016-06-21 14:44:40
【问题描述】:

目前我用 Tensorflow 制作了一个带有一个隐藏层、softmax 输出层(形状=[440,8196,8],标签稀疏)的简单 MLP,并尝试了不同的设置,例如不同的激活函数,不同的优化器。大多数设置工作正常并提供合理的收敛交叉验证结果,除了设置(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”通常甚至可以承受比“tanh”更大的学习率。我更改了不同的初始化方案(常量、统一),但仍然找不到问题所在。有什么建议可以进一步调试吗?非常感谢!!!

【问题讨论】:

    标签: tensorflow


    【解决方案1】:

    也许从一个单层网络开始,先用一个或两个单元来测试(sigmoid,SGD),然后逐渐增加网络复杂度。通过这种方式,您可以更好地区分算法问题和 tensorflow 使用/实现问题。

    【讨论】:

    • 谢谢,姚。是的,我用 MNIST 测试了一些我的 python 代码,并且 (sigmoid, SGD) 与其他设置一样工作得很好。然后我开始训练自己的数据,然后遇到了这个问题。我确信实现是好的,但很困惑为什么只有 (sigmoid, SGD) 没有收敛?!是否对初始化参数过于敏感,或者如何正确微调学习率?
    猜你喜欢
    • 1970-01-01
    • 2014-10-24
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-22
    相关资源
    最近更新 更多