logo

PyTorchでモデルを保存する際の「RuntimeError: Parent directory does not exists」エラーの解決法 📂機械学習

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