1. 程式人生 > >BaggingRegressor 無限迴圈/不停止執行的問題

BaggingRegressor 無限迴圈/不停止執行的問題

當我使用BaggingRegressor來控制過擬合時,我遇到了程式迴圈執行,而且完全佔用CPU的問題,開啟工作管理員一看,發現還真是個並行程式。無意間居然牽涉到了並行,這是我敲完那行程式碼之後沒有想到的。

使用os.system("pause"),讓程式暫停後發現python還是給了一些提示:

ImportError: [joblib] Attempting to do parallel computing without protecting your import on a system that does not support forking. To use parallel-computing in a script, you must protect your main loop using "

if __name__ == '__main__'". Please see the joblib documentation on Parallel for more information

其實我本來是另外一個Python檔案執行匯入這個BaggingRegressor的python檔案的,看到這個提示發現沒戲了,因為"if __name__ == '__main__'"不允許其他地方匯入。

解決的方案也就是如上所述,在前面加上"if __name__ == '__main__'"就可以了,下面舉了個例子

if __name__ == 'main':

    '''your code here...'''
    
    llr = linear_model.LogisticRegression(C = 1.0, penalty = 'l1', tol = 1e-6)

    bagging_llr = BaggingRegressor(llr, n_estimators = 20, max_samples = 0.8, max_features = 1.0, bootstrap = True, bootstrap_features = False, n_jobs = -1)
    
    bagging_llr.fit(X, y)
    
    '''your code here...'''