【发布时间】:2020-02-19 23:00:48
【问题描述】:
我正在尝试对scikit-learn's MLPClassifier 使用不同的优化器。据他们的文档显示,只有几个solvers(MLPClassifier 的优化器参数)可用,它们是:
- “lbfgs”是准牛顿方法系列中的优化器。
- ‘sgd’指的是随机梯度下降。
- “adam”指的是由 Kingma、Diederik 和 Jimmy Ba 提出的基于随机梯度的优化器
我正在尝试使用另一个名为Nadam 的工具。我尝试将一些参数与solver='adam' 和nesterovs_momentum=True 混合来实现它,但是sklearn 的文档说最后一个参数仅用于sgd:
是否使用涅斯捷罗夫的动量。仅在solver='sgd' 且动量> 0 时使用。
我已经尝试了上述方法,因为我认为这意味着 keras's nadam 所说的:
就像 Adam 本质上是带有动量的 RMSprop,Nadam 是带有 Nesterov 动量的 RMSprop。
由于这一切,我不认为我在做正确的事。下面的代码显示了我到目前为止所做的事情。
from sklearn.neural_network import MLPClassifier
clf = MLPClassifier(solver='adam', nesterovs_momentum=True,)
【问题讨论】:
标签: python keras scikit-learn