일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 보안
- 딥러닝
- 클라우드컴퓨팅
- 2
- 웹개발
- 코딩
- 컴퓨터비전
- 빅데이터
- 자바스크립트
- 버전관리
- 머신러닝
- 데이터과학
- 자료구조
- 사이버보안
- I'm Sorry
- 데이터구조
- 인공지능
- 데이터분석
- 네트워크
- Yes
- 소프트웨어공학
- 알고리즘
- 파이썬
- 컴퓨터공학
- 프로그래밍
- 네트워크보안
- 프로그래밍언어
- 컴퓨터과학
- 소프트웨어
- 데이터베이스
- Today
- Total
스택큐힙리스트
PyTorch에서 학습된 모델을 어떻게 저장하나요? 본문
PyTorch에서 학습된 모델을 어떻게 저장할 수 있나요? 다음과 같이 읽었습니다.
torch.save() / torch.load()은 (Serializable 객체를) 저장하거나 불러오기 위한 것입니다.
model.state_dict() / model.load_state_dict()는 모델 상태를 저장하거나 불러오기 위한 것입니다.
답변 1
그들의 깃허브 저장소에서 this page를 발견했습니다.
모델 저장에 대한 권장 접근 방식
모델 직렬화 및 복원에는 두 가지 주요 접근 방식이 있습니다.
첫 번째(권장)는 모델 매개변수만 저장 및 로드합니다.
torch.save(the_model.state_dict(), PATH)
그런 다음에:
the_model = TheModelClass(*args, **kwargs)
the_model.load_state_dict(torch.load(PATH))
두 번째는 전체 모델을 저장하고 불러옵니다.
torch.save(the_model, PATH)
그 후에:
the_model = torch.load(PATH)
그러나 이 경우에 직렬화된 데이터는 특정 클래스와 사용된 정확한 디렉토리 구조에 바인딩되므로 다른 프로젝트에서 사용하거나 중대한 변경 작업 이후에도 여러 가지 방식으로 오류가 발생할 수 있습니다.
공식 PyTorch 튜토리얼의 Save and Load the Model 섹션도 참조하세요.
답변 2
파이토치에서 교육된 모델을 저장하는 방법은 아주 간단합니다. 일반적으로 딥 러닝 모델이 학습 즉시 저장되지 않는 경우가 많지만 나중에 다시 사용할 수 있도록 모델을 저장하는 것이 좋습니다. 모델 저장은 온라인 기록을 참조하여 가능합니다. PyTorch에서 모델 저장은 두 가지 단계로 이루어집니다.첫째, 모델 매개 변수를 디스크에 저장합니다. 이렇게 하면 실행 중인 코드에서 매개 변수를 로드하여 쉽게 사용할 수 있습니다. 파이토치에서는 torch.save() 함수를 사용하면 모델의 상태를 저장할 수 있습니다. 간단한 예를 들면 다음과 같습니다.
torch.save(model.state_dict(), PATH)
두 번째, 모델 아키텍처를 생성합니다. 이렇게하면 모델의 레이어 및 다른 구조를 추적하여 디스크에 저장할 수 있습니다. 아래 isfile() 함수를 사용하여 파일이 이미 있으면 모델을 저장하지 않습니다.
if not os.path.isfile(PATH):
model = Net()
torch.save(model, PATH)
위 예시에서 먼저 torch.save() 함수를 사용하여 모델의 상태를 임시 파일에 저장합니다. 그런 다음 해당 파일을 디스크에 저장하여 모델 아키텍처를 저장합니다. 디스크의 모델 상태에서 일부 모델 상태는 영구적으로 저장하는 경우가 많으며 일부는 일시적인 상태로 유지됩니다.
따라서, PyTorch에서 모델 저장 방법은 매우 쉽습니다. 모델을 저장하면 나중에 다시 사용할 수 있으므로 권장됩니다. 코드를 실행하면 모델을 자동으로 저장하고 다시 로드하면 성능에 영향을 미치지 않으므로 편리합니다.