multiprocessing
にfreeze_support()
を使用すると混乱し、Runtime Error
なし。関数またはモジュールを定義するのではなく、スクリプトのみを実行しています。まだ使用できますか?または、インポートするパッケージはそれを使用していたはずですか?
ここ はドキュメントです。
特定の問題はscikit-learn
GridSearchCV
を呼び出して、プロセスを並行して生成しようとします。このためにスクリプトを凍結する必要があるのか、それとも(Anacondaディストリビューションから)呼び出されるコードを凍結する必要があるのかわかりません。詳細がこの質問に関連する場合は、より具体的な question に進んでください。
Windowsでは、allのmultiprocessing
--を使用するコードは_if __name__ == "__main__":
_で保護する必要があります
安全のため、現在スクリプトのトップレベルにあるすべてのコードをmain()
関数に入れてから、トップレベルでこれを実行します。
_if __name__ == "__main__":
main()
_
これが必要な理由については、「メインモジュールの安全なインポート」サブセクション here を参照してください。おそらく_freeze_support
_を呼び出す必要はありませんが、それを含めることには何の害もありません。
いずれにせよ、スクリプトに_if __name__ == "__main__"
_ガードを使用するのがベストプラクティスであることに注意してください。そうすれば、将来のある時点でスクリプトを別のスクリプトにimport
する必要がある場合に、コードが予期せず実行されることはありません。