PyTorchでモデルを保存する際の「RuntimeError: Parent directory does not exists」エラーの解決法
エラー
PyTorchでモデルや重みを保存する時、確かに存在するパスであるにも関わらず、次のようなエラーに遭遇することがある。
>>> print("Is exists path?: ", os.path.exists(directory))
Is exists path?: True
>>> torch.save(model.state_dict(), directory + 'weights.pt')
RuntimeError: Parent directory _____ does not exist.
解決方法
私の場合、ファイルパスに特殊文字デルタΔが含まれていたが、これを消すとエラーが出なくなった。しかし、これが必ずしもエラーの原因ではない。3台のコンピューターの中で1台だけこのエラーが発生したので、「Δ」の問題だけではなく、それぞれのコンピューターの環境も影響していると思われる。モデルがCPUとGPUのどちらに乗っているかは、エラーとは無関係だった。下の結果から見ると、pytorchかpytorch-cudaの違いのようだ。
環境
エラーが出たコンピューター環境:
- OS: Windows11
- Version: Python 3.9.13, torch==1.13.1
エラーが出なかったコンピューター環境:
OS: Windows11
Version: Python 3.9.2, torch==1.8.1+cu111
OS: Windows10
Version: Python 3.8.4, torch==1.9.0+cu111