logo

파이토치에서 모델 저장할 때 'RuntimeError: Parent directory does not exists' 에러 해결법 📂머신러닝

파이토치에서 모델 저장할 때 'RuntimeError: Parent directory does not exists' 에러 해결법

오류

파이토치에서 모델이나 가중치를 저장할 때, 분명 존재하는 경로임에도 불구하고 다음과 같은 오류를 마주할 수 있다.

>>> 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대에서만 이 오류가 발생하였기 때문에 'Δ' 자체의 문제만은 아니고 각 컴퓨터의 환경도 영향을 주는 것 같다. 모델이 cpud와 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