반응형
- 개요
- 코드에만 매몰되어 있다보니까 큰 그림을 놓치고 있는 것 같아서 정리
[파이토치 학습과정]
위 모델 학습 플로우를 수도 코드를 작성해보자
# 필요한 패키지 import
# hyperparameter 선언
# 선언한 hyperparameter 를 저장
# 데이터 불러오기
# dataset 만들기 & 전처리하는 코드
# dataloader 만들기
# AI 모델 설계도 만들기 (class)
# init, forward 구현하기
# AI 모델 객체 생성 (과정에서 hyperparameter 사용)
# loss 객체 생성
# optimizer 객체 생성
# ------- 준비단계 끝 --------
# ------- 학습단계 시작 --------
# loop 돌면서 학습 진행
# [epoch]을 학습하기 위해 batch 단위로 데이터를 가져와야함
# 이 과정이 loop 로 진행
# dataloader 가 넘겨주는 데이터를 받아서
# ai 모델에게 넘겨주고
# 출력물을 기반으로 loss 를 계산하고
# loss 를 바탕으로 Optimization 을 진행
# 특정 조건을 제시해서, 그 조건이 만족한다면 학습의 중간 과정을 확인
**# 평가를 진행
# 보고 싶은 수치 확인(loss, 평가 결과 값, 이미지와 같은 meta-data 등)**
# 만약 평가 결과가 괜찮으면
# 모델 저장
학습의 큰 틀(데이터 전처리, 학습, 평가)은 같고, 평가 부분에 (교차 검증같은) 내용들을 코드에 녹여내려하면 수도 코드도 다음처럼 바뀔 수 있다.
# 패키지 import
# hyperparameter 설정
# hyperparameter 저장
# 데이터 불러오기
# 전처리하는 코드
# AI 모델 설계도 만들기 (class)
# init, forward 구현하기
# ------- 준비단계 끝 --------
# ------- 학습단계 시작 --------
# 학습과 평가를 위한 kfold 객체 생성(n_splits)
# n_splits 만큼 AI 모델 객체 생성 (과정에서 hyperparameter 사용)
# loop 돌면서 학습 및 교차검증
# kfold 객체로부터 train, validation 데이터를 받아옴
# train, validation dataset 만들기
# train, validation dataloader 만들기
# loss 객체 생성
# optimizer 객체 생성
# train dataloader 로부터 데이터를 받아서
# ai 모델에게 넘겨주고 loss 를 계산
# validation dataloader 로부터 데이터를 받아서
# (학습이 진행된) ai 모델에게 넘겨주고 loss_val 를 계산
# loss, loss_val 을 기반으로 평가 진행
# 보고 싶은 수치 확인(loss, 평가 결과 값, 이미지와 같은 meta-data 등)
# 평가 결과가 괜찮으면(조건 만족)
# 모델 저장
[파이토치 - 추론과정]
- 결론
- 코드 형태에 정답이 있는건 아니다
- 전체적인 플로우는 단순한 편이고, 개별 모델에 대한 코드, 데이터 전처리, 평가 부분에 해당하는 코드를 별도로 작성해나가면 된다
반응형
'머신러닝' 카테고리의 다른 글
경사하강법(Gradient Discent) (1) | 2023.11.01 |
---|