[PyTorch] AI 모델 저장 & 불러오기

2023. 8. 15. 15:00·Python
반응형

PyTorch AI 모델 저장 & 불러오기에 대해 학습 후 정리한 포스팅 입니다.

 

이번 포스팅에서는 AI 모델 저장 및 불러오는 방법에 대해 학습합니다.

 

 

I) AI 모델을 저장하는 이유?

AI 모델을 저장하는 것은 재사용성, 배포, 버전 관리, 전이 학습 등의 이유로 중요합니다.

 

1. 재사용성: 훈련된 모델은 재사용될 수 있어 모델을 처음부터 다시 훈련할 필요성을 줄입니다

2. 배포: 모델을 훈련하고 저장한 후에는 다양한 환경에 배포하여 사용자에게 실시간 예측을 제공할 수 있습니다.
3. 버전 관리: 모델의 변화를 추적하고 이전 버전으로 되돌릴 수 있게 해줍니다.
4. 전이 학습: 저장된 모델은 다른 관련된 작업에서 사전 훈련된 모델을 시작점으로 전이 학습에 사용할 수 있습니다.



 

 

II) AI 모델 저장 (모델 전체 저장 VS 매개변수만 저장)

1) AI 모델 전체를 저장

  • 모델 전체를 저장하면 파라미터 + optimizer, epoch 등 모든 상태를 저장한다.
  • 공유, 협업 및 추론이나 추가 훈련을 위해 정확히 동일한 모델을 재생성해야 할 때 유용합니다.
import torch
import torchvision.models as models

# 모델의 모든 상태를 저장
torch.save(model, '../AI_model.pt')
torch.load('../AI_model.pt')

2) 매개변수만 저장

  • 나중에 사용하거나 다른 프레임워크로 이동할 가중치만 저장하려는 경우에 유용합니다.
  • 다른 가중치 값과 함께 아키텍처를 재사용하거나 세부 저장 공간이 제한적인 경우에 적합합니다.
import torch
import torchvision.models as models

# 모델의 매개변수만 저장
torch.save(model.state_dict(),'../AI_model_state.pt')
torch.load_stat_dict(torch.load('../AI_model_stat.pt')

 

 

 

III) AI 모델 불러오기

1) AI 모델 전체를 불러오기

import torch
import torchvision.models as models

# 전체 모델 불러오기
model = torch.load('saved_model.pt')

# 모델을 평가 모드로 설정
model.eval()

# 모델을 추론에 활용
outputs = model(inputs)

2) 매개변수만 불러오기

import torch
import torchvision.models as models

# 같은 모델 아키텍처의 새로운 인스턴스 생성
model = models.vgg16()

# 저장된 가중치를 모델에 불러오기
model.load_state_dict(torch.load('model_weights.pth'))

# 모델을 평가 모드로 설정
model.eval()

# 모델을 추론에 활용
outputs = model(inputs)

 

 

 

 

 

ref: 

 

[PyTorch] PyTorch 모델을 저장하는 방법 및 고려해야할 점

PyTorch 모델을 학습 한 뒤, 모델을 저장하고 불러오는 방법은 다음과 같다. 모델 저장하고 불러오기 다음과 같이 PyTorch 모델은 학습한 매개변수를 state_dict 이라고 불리는 internal state dictionary에 저

eehoeskrap.tistory.com

 

 

<Summary>

- PyTorch - AI 모델 저장 & 불러오기

 

 

 

*유의사항

- AI 산업기능요원이 공부하여 남긴 정리입니다.

 

반응형
저작자표시 (새창열림)

'Python' 카테고리의 다른 글

[screen] Linux 터미널 다중화 도구  (0) 2023.08.17
[tqdm] 진행 상황 표시 모듈  (0) 2023.08.16
[argparse] Python 스크립트 실행 시 인자 값 전달하기  (0) 2023.08.13
[DataFrame] Pandas DataFrame 다루기 - iloc & loc, 값 변경  (0) 2023.08.12
[DataFrame] Pandas DataFrame 다루기 - 특징, 생성, column 수정, index 수정  (0) 2023.08.11
'Python' 카테고리의 다른 글
  • [screen] Linux 터미널 다중화 도구
  • [tqdm] 진행 상황 표시 모듈
  • [argparse] Python 스크립트 실행 시 인자 값 전달하기
  • [DataFrame] Pandas DataFrame 다루기 - iloc & loc, 값 변경
성 언
성 언
AI 학과 3학년 학생이자 RAG 기반 LLM 챗봇 개발 회사에서 근무 중입니다. AI 챗봇 개발과 관련된 기술, 연구, 그리고 실험 과정에서 얻은 인사이트를 공유합니다. 최신 AI 기술을 함께 탐구하며 성장해 나가요!
    반응형
  • 성 언
    AI EON
    성 언
  • 전체
    오늘
    어제
    • AII
      • NLP
      • AI Paper Review
      • MLOps
      • Python
      • Algorithm
      • Memo
      • Server Developer
        • Node.js
        • DataBase&Data Engineering
        • Server Basic
      • MATH
        • Linear Algebra
        • AI
      • etc
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    파이썬 문서 자동화
    transaction
    알고리즘
    패스트캠퍼스 수강 후기
    map 함수
    docx-template
    비반복 읽기
    그리디 알고리즘
    다중 버전 동시성 제어
    백준
    스택
    더티 쓰기
    c++
    NVML
    배타 잠금
    트랜잭션
    node.js
    reranker
    Signature 초격차 패키지
    팬텀 읽기
    Python
    파이썬
    문서 자동화
    더티 읽기
    word 자동화
    배열의 모양 변경
    Ubuntu-20.04 APM 소스 설치
    리랭커
    umc
    [Numpy] squeeze & unsqueeze
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
성 언
[PyTorch] AI 모델 저장 & 불러오기
상단으로

티스토리툴바