"培训分歧并返回NaN"何时第二次安装模型?

时间:2016-08-24 19:33:07

标签: scikit-learn neural-network

我是一个正在尝试这个神经网络示例的scikit n00b:

from sknn.mlp import Regressor, Layer

nn = Regressor(
    layers=[
        Layer("Rectifier", units=100),
        Layer("Linear")],
    learning_rate=0.02,
    n_iter=10)
nn.fit(X_train, y_train)

在[0]上找到。

我有适当的(标准化的)数据集(x_train和Y_train),我正在使用。当我执行nn.fit命令时,它工作一次。但任何后续重新运行的尝试都会导致非常烦人,

  File "1.py", line 39, in <module>
    nn.fit(X, Y.values.ravel())
  File "/Library/Python/2.7/site-packages/sknn/mlp.py", line 397, in fit
    return super(Classifier, self)._fit(X, yp, w)
  File "/Library/Python/2.7/site-packages/sknn/mlp.py", line 248, in _fit
    raise e
RuntimeError: Training diverged and returned NaN.

这个错误似乎没有记录,所以我的智慧结束了。让它重新工作的唯一方法似乎是重新启动我的电脑。谁看过这个吗?这是否意味着我需要进行某种“清理”工作。一旦我做完了吗?

[0] http://scikit-neuralnetwork.readthedocs.io/en/latest/guide_model.html

2 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,我尝试使用scikit-learn的管道规范化我的数据,如http://scikit-neuralnetwork.readthedocs.io/en/latest/guide_sklearn.html#example-pipeline所示。我还尝试将输出层的类型从“线性”更改为“Softmax”。

我仍然是新手,我不知道为什么这些方法会有所帮助。

答案 1 :(得分:-1)

是的,我遇到了和你一样的问题,并通过将“线性”改为“Softmax”解决了这个问题。