我在Windows 10 64位操作系统上运行python 3.5。
当我尝试实施MLPClassifier
时,代码会运行一段时间然后给我一个MemoryError
。
我认为这是由于我要求它运行的隐藏层的大小,但我需要运行此大小来收集我的数据。我该如何规避这个错误?
代码
gamma=[1,10,100,1000,10000,100000]#create array for range of gamma values
score_train=[]
score_test=[]
for j in gamma:
mlp = MLPClassifier(solver='lbfgs', random_state=0, hidden_layer_sizes=[j,j], activation='tanh').fit(data_train, classes_train)
score_train.append(mlp.score(data_train,classes_train))
score_test.append(mlp.score(data_test,classes_test))
print (score_train)
print (score_test)
错误
答案 0 :(得分:1)
代码运行一段时间然后给我一个MemoryError。我认为这是由于我要求它运行的隐藏层的大小,但我需要运行此大小来收集我的数据。
是的,这是隐藏层的大小!而那句话的剩余部分没有多大意义(继续阅读)!
X,y
!hidden_layer_sizes=[j,j]
实际上正在创建 2 隐藏层!hidden_layer_sizes=[100000, 100000]
时,使用 ~76千兆字节的内存(假设是64位双打)只是为了连接这两个层的这些权重!
lbfgs
是一个完全不同于其他所有人的解算器。如果不了解其含义,请不要使用它! 它不是默认值!
Note: The default solver ‘adam’ works pretty well on relatively large datasets (with thousands of training samples or more) in terms of both training time and validation score. For small datasets, however, ‘lbfgs’ can converge faster and perform better.