PyTorch:「freeze_support()」の行を省略することができます

質問:

トレースバック(最後の最新の呼び出し):
「で、1行目、ファイル」
ファイル「D:\アナコンダ\ ENVS \ GPU-ENV \ libに\マルチプロセッシング\ spawn.py」、spawn_mainでライン105、
終了コード= _main(FD)
ファイル「D:\アナコンダ\ ENVS \ GPU-ENV \ LIB \マルチ\ spawn.py」は、線114は、_mainに
(preparation_data)調製
:\アナコンダ\ ENVS \ GPU-ENV \ LIB \マルチ\ spawn.pyファイル」Dを」、ライン225における準備
_fixup_main_from_path(データ[ 'init_main_from_path'])
ファイル『D:』 _fixup_main_from_pathにおいて、ライン277、\アナコンダ\ ENVS \ GPU-ENV \ LIB \マルチ\ spawn.py
run_name = 『mp_main』)
ファイル「D:\アナコンダ\ ENVS \ GPU-ENV \ LIB \ runpy.py」、行263におけるrun_path
pkg_name = pkg_name、SCRIPT_NAME = FNAME)
ファイル「D:\アナコンダ\ ENVS \ GPU-ENV \ libに\ runpy.py」、ライン96、_run_module_codeの中
MOD_NAME、mod_spec、pkg_name、SCRIPT_NAME)
ファイル「D:\アナコンダ\ ENVS \ GPU-ENV \ libに\ runpy。 「_run_codeにおいて、ライン85、PY
EXEC(コード、run_globals)
ファイル『G:\ pycharmプロジェクト\ PytorchLearning \最初\ Classifier.py』、行135における
メイン()
ファイル「G:\ pycharmプロジェクト\ PytorchLearning \第一\ Classifier.py」、行123、メインで
dataiter = ITER(trainloader)
ファイル『D:\アナコンダ\ ENVS \ GPU-ENV \ libに\のsite-packages \トーチ\ utilsの\データ\ dataloader.py』、行278、中ITERは
_MultiProcessingDataLoaderIter(自己)を返す
には、ライン682:ファイル「\アナコンダ\ ENVS \ GPU-ENV \ libに\のsite-packages \トーチ\ utilsの\データ\ dataloader.py Dを」INIT
)(w.start
ファイル「D:\アナコンダ\ ENVS \ GPU-ENV \ libに\マルチプロセッシング\ process.py」、行112、スタートで
self._popen = self._Popen(自己)
ファイル「D:\アナコンダ\ ENVS \ GPU-ENV \ LIB \マルチプロセッシング\ context.py」、行223、_popenで
リターン_default_context.get_context()Process._Popen(process_obj)。
ファイル『D:\アナコンダ\ ENVS \ GPU-ENV \ libに\マルチプロセッシング\ context.py』、行_popenで322、
リターンpopenの(process_obj)
ファイル「D:\アナコンダ\ ENVS \ GPU-ENV \ libに\マルチプロセッシング\ popen_spawn_win32.py」、行46、内のinit
prep_data = spawn.get_preparation_data(process_obj._name)
ファイル「D: \アナコンダ\ ENVS \ GPU-ENV \ libに\マルチプロセッシング\ spawn.py」、行143、get_preparation_dataで
_check_not_importing_main()
ファイル「D:\アナコンダ\ ENVS \ GPU-ENV \ libに\マルチプロセッシング\ spawn.py」、_check_not_importing_mainにおけるライン136は、
実行可能ファイルを生成するために凍結されたことになるだろうされていない'' ')。
例外RuntimeError:
試みがためになされたもので、前に、新しいプロセスを開始し
、現在のプロセスは、そのブートストラップ・フェーズを完了しました。

    This probably means that you are not using fork to start your
    child processes and you have forgotten to use the proper idiom
    in the main module:

        if __name__ == '__main__':
            freeze_support()
            ...

    The "freeze_support()" line can be omitted if the program
    is not going to be frozen to produce an executable.

トレースバック(最新の呼び出しの最後):
ファイル「G:/ pycharmプロジェクト/ PytorchLearning /最初/ Classifier.py」、行135、で
main()の
ファイル「G:/ pycharmプロジェクト/ PytorchLearning /最初/ Classifier.py」、ライン123、メインで
dataiter = ITER(trainloader)
ファイル「D:\アナコンダ\ ENVS \ GPU-ENV \ libに\のsite-packages \トーチ\ utilsの\データ\ dataloader.py」で、ライン278、ITERは
_MultiProcessingDataLoaderIter(自己を)返します
ファイル「D:\アナコンダ\ ENVS \ GPU-ENV \ libに\のsite-packages \トーチ\ utilsの\データ\ dataloader.py」で、ライン682、INIT
w.start()
ファイル「D:\アナコンダ\ ENVS \ GPU -env \ libに\マルチプロセッシング\ process.py」、行112、スタートで
self._popen = self._Popen(自己)
ファイル「D:\アナコンダ\ ENVS \ GPU-ENV \ libに\マルチプロセッシング\ context.py」、行223、_popenで
リターン_default_context.get_context()Process._Popen(process_obj)。
ファイル「D:\アナコンダ\ ENVS \ GPU -env \ libに\マルチプロセッシング\ context.py」、行322、中_popen
リターンpopenの(process_obj)
ファイル『D:\アナコンダ\ ENVS \ GPU-ENV \ libに\マルチプロセッシング\ popen_spawn_win32.py』、行89、内のinit
削減.dump(process_obj、to_child)
ファイル「D:\アナコンダ\ ENVS \ GPU-ENV \ LIB \マルチ\ reduction.py」、ライン60、ダンプに
ForkingPickler(ファイルプロトコル)の.dump(OBJ)
BrokenPipeError:[エラー番号32 ]ブロークンパイプ

解決:

メインプログラムモジュールの実行に追加します。

if __name__ == '__main__':

問題は解決しました!

公開された69元の記事 ウォン称賛11 ビュー8447

おすすめ

転載: blog.csdn.net/qq_40994260/article/details/104476041