python - 有没有办法在 scikit-learn MLPClassifier 上使用 Nadam 优化器?
问题描述
我正在尝试对scikit-learn 的 MLPClassifier使用不同的优化器。据他们的文档显示,只有几个solvers
(MLPClassifier 的优化器参数)可用,它们是:
- 'lbfgs' 是准牛顿方法家族中的优化器。
- 'sgd' 指的是随机梯度下降。
- “adam”指的是由 Kingma、Diederik 和 Jimmy Ba 提出的基于随机梯度的优化器
我正在尝试使用的是另一个名为Nadam的。我尝试将一些参数与solver='adam'
and混合来实现它nesterovs_momentum=True
,但 sklearn 的文档说最后一个参数仅用于sgd
:
是否使用涅斯捷罗夫的动量。仅在求解器 ='sgd' 且动量 > 0 时使用。
我已经尝试了上述方法,因为我认为这意味着keras 的 nadam所说的:
就像 Adam 本质上是带有动量的 RMSprop,Nadam 是带有 Nesterov 动量的 RMSprop。
由于这一切,我不认为我在做正确的事。我下面的代码显示了我到目前为止所做的事情。
from sklearn.neural_network import MLPClassifier
clf = MLPClassifier(solver='adam', nesterovs_momentum=True,)
解决方案
您不能提供nesterovs_momentum
给adam
优化器。
要看到这一点,您应该查看github上的BaseMultilayerPerceptron代码。
将 SGDOptimizer 接受的参数与 AdamOptimizer接受的参数进行比较。
你会看到adam
根本不接受nesterovs_momentum
。
推荐阅读
- linkedin - 如何在应用程序链接中设置 r_emailaddress 和 r_fullprofile 等权限
- reactjs - 如何将 console.log 消息从 Firefox/Chrome webbrowser 控制台重定向到终端
- excel - 更改下拉按钮的组合框颜色
- c++ - 如何拆分嵌入在 C++ 分隔符中的字符串?
- python - 如何将 Xaxis(次)的格式更改为其他格式?Python - 熊猫 - Matplotlib
- amazon-ses - 代表用户发送电子邮件
- node.js - 有没有办法在 Node.js 中获取已加载模块的文件路径?
- javascript - Aws4 签署 S3 PUT 请求
- powershell - 将(年份)保存在重命名文件夹中
- c# - 有没有一种更简洁的方法可以像字典一样访问列表?