【发布时间】:2015-11-02 13:42:13
【问题描述】:
我正在尝试在 Python 中实现神经网络分类器。这是函数的sn-p
def create_and_train_nn(train_predictors,train_responses):
print '\t\tcreating Neural Network'
nn = Classifier(
layers=[
Layer("Maxout", units=100, pieces=2),
Layer("Softmax")],
learning_rate=0.001,
n_iter=25)
print '\t\tNeural Network created successfully'
print '\t\ttraining Neural Network'
fit = nn.fit(train_predictors,train_responses)
print "NN Fitted"
print '\t\tNeural Network successfully trained'
return nn
在执行代码后,我得到了以下错误。
No handlers could be found for logger "sknn"
Traceback (most recent call last):
File "D:/Predictive-Analytics/CodeBase/Tests/balanceClasses/parameterTesting/neural_1.py", line 590, in <module>
start(table1='small_ds1_tse_temporal_lookback6',table2='balanced_new_small_ds1_tse_temporal_lookback6_m1_6hr_0106')
File "D:/Predictive-Analytics/CodeBase/Tests/balanceClasses/parameterTesting/neural_1.py", line 588, in start
main(table1,table2,30,5,'gini',100,fname,start_date,end_date,i+1,ds)
File "D:/Predictive-Analytics/CodeBase/Tests/balanceClasses/parameterTesting/neural_1.py", line 257, in main
nn = create_and_train_nn(train_predictors,train_responses)
File "D:/Predictive-Analytics/CodeBase/Tests/balanceClasses/parameterTesting/neural_1.py", line 481, in create_and_train_nn
fit = nn.fit(train_predictors,train_responses)
File "C:\Users\Dickson\Anaconda\lib\site-packages\sknn\mlp.py", line 283, in fit
return super(Classifier, self)._fit(X, yp)
File "C:\Users\Dickson\Anaconda\lib\site-packages\sknn\mlp.py", line 157, in _fit
raise e
RuntimeError: NaN in hidden0_W
我已经用谷歌搜索了这个错误,并且有一些建议可以将学习率降低 10 倍。但即使在那之后问题仍然存在。此外,似乎没有其他解决方案运作良好。我也无法理解此错误与什么上下文相关。任何帮助都会很有帮助。
【问题讨论】:
-
检查你的数据集,也许它包含 NaN 的?
标签: python scikit-learn neural-network theano scikits