머신러닝

학습 모델 파일 형식에 대해 알아보자. (h5, pth, ckpt, ...)

shinetheworld 2025. 1. 17. 14:47

기본적으로 pytorch를 활용해 학습 모델을 생성해 왔는데,

CV 실습을 하면서 h5 파일을 실행시켜 pretrained 모델을 사용했던 게 기억이 났다.

 

h5도 모델 형식이었던 것 같은데... pth 파일과 어떤 차이가 있는지 궁금해져

h5, pth를 포함한 각 파일별 특징과 차이점에 대해 알아보려고 한다.

 

.h5

일반적으로 Keras 모델을 저장하는 데 사용되는 확장자.

HDF5 포맷으로 모델 및 가중치 데이터를 모두 저장.

 

.pth / .pt

일반적으로 Pytorch 모델을 저장하는 데 사용되는 확장자.

.pth와 .pt 파일 확장자는 파일 형식이나 내용 면에서 별 차이가 없어서 일반적으로 상호 교환해서 사용 가능하다.

 

.pth는 가중치만을 저장하지만,

.pt는 가중치 or 가중치 + 모델 구조를 포함해 저장할 수 있다. TorchScript를 사용할 때 사용 가능하다.

 

torch.save() 함수를 사용해 모델의 state_dict를 저장.

state_dict는 모델의 각 레이어를 해당 매개변수 텐서와 매핑하는 python의 사전 객체.

 

.ckpt

tensorflow에서 학습된 모델의 구조를 제외한 변수들을 담고 있는 확장자.

모델의 가중치 데이터만을 저장.

 

 

(더 다양한 파일 형식은 후첨 예정)


 

 

참고)

https://i-am-eden.tistory.com/5

https://velog.io/@leejken530/ptckptpth%EC%B0%A8%EC%9D%B4

https://tutorials.pytorch.kr/recipes/recipes/what_is_state_dict.html

'머신러닝' 카테고리의 다른 글

활용 가능한 알고리즘 및 모델 리서치  (0) 2025.01.11