개발자
Python에서 torch로 모델 로드하고 사용할때 PID 값으로 중복으로 모델이 안올라오게 핸들링 해보신분 있으실까요..? ㅠㅠ
답변 0
첫 답변을 기다리고 있어요.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2024년 06월 22일
Python에서 `os` 모듈의 `getpid()` 함수를 사용하면 현재 프로세스의 PID(Process ID) 값을 구할 수 있습니다. 이를 통해 중복으로 모델이 로드되는 것을 방지하는데 활용할 수 있습니다. 예를 들어, 모델을 로드하고 저장하는 코드가 있다면 다음과 같이 작성할 수 있습니다. ```python import os import torch pid = os.getpid() # 각 PID 별로 따로 모델 저장하기 model_path = f'/path/to/model/{pid}.pth' # 파일이 존재하지 않으면 모델 로드. 이렇게 하면 중복으로 불러오는 것 방지 가능. if not os.path.exists(model_path): model = torch.load('/path/to/original_model.pth') torch.save(model, model_path) else: model = torch.load(model_path) ``` 위 코드는 각 프로세스(PID)마다 별도의 모델 파일을 생성하므로, 만약 동일한 PID에서 다시 실행한다 해도 이미 해당 PID에 대한 모델 파일이 존재하기 때문에 원본 모델을 불러와서 덮어쓰지 않습니다. 하지만 이렇게 직접 관리하다보면 많은 수의 임시 모델 파일들이 생길 수 있으니 주기적으로 필요 없는 파일들은 삭제하는 것이 좋습니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!