【问题标题】:Pytorch Convolutional Layer returning NanPytorch 卷积层返回 Nan
【发布时间】:2019-01-16 11:56:46
【问题描述】:

所以我使用卷积层作为深度强化学习的神经网络的第一层,以从我构建的模拟中获取空间特征。模拟给出了不同长度和高度的不同地图来处理。如果我了解卷积网络,这应该无关紧要,因为通道大小保持不变。在卷积网络和全连接层之间有一个空间金字塔池化层,因此不同的图像大小无关紧要。空间数据也非常稀疏。通常在第一个卷积层吐出所有 Nans 之前,它能够经历几个状态,有时是几个情节。即使我修复了地图大小,也会发生这种情况。不知道问题出在哪里,问题出在哪里?

【问题讨论】:

  • 标题有点误导,但是由于学习率大,参数正则化不良(您使用的是批量标准化吗?),您的值很可能只是不同的你的实施?也许一些代码?您目前使用的超参数是什么?什么优化器?如果您希望获得有关此类主题的帮助,则必须提供更多详细信息。
  • 我正在使用批量归一化,但这发生在第一层,然后才能应用泄漏的 ReLU 或批量归一化。我正在使用已使用 SGD+Momentum 优化器进行范围测试的循环学习。
  • 它发生在哪里并不重要,问题是您的反向传播步骤可能会增加/减少层的权重,以至于网络将在下一次前向传递中计算 NaN。如果您期望得到合理的答案,请分享您的代码,否则真的很难分辨出什么是错的。并命名您的参数,例如学习率、学习率衰减等。

标签: python neural-network artificial-intelligence conv-neural-network pytorch


【解决方案1】:

尝试使用 0 到 1 之间的随机数初始化权重,然后为网络训练尝试不同的学习率。 (我建议用等于 10, 1, 0.1, 0.01, ... 的学习率来测试它)

【讨论】:

    猜你喜欢
    • 2021-11-09
    • 1970-01-01
    • 2019-07-21
    • 2020-02-09
    • 2020-03-26
    • 2019-06-26
    • 2020-11-04
    • 2021-06-09
    • 2021-04-13
    相关资源
    最近更新 更多