본문 바로가기
DL|ML

ckpt, pb, h5 차이점?

by 이든Eden 2019. 9. 18.

ckpt, pb, h5 차이점?

💡
라이브러리, 패키지는 모르면서 그냥 써왔던 것이 많다. 딥러닝을 하면서 TensorFlow를 쓸 때는 "그거 그냥 ckpt 받아서 쓰면 되지않아?" 라거나 Keras를 쓸 때는 "hdf5로 모델 인퍼런스 되는데, 문제가 뭔지 모르겠어요." 등등 자연스럽게 써왔는데 오늘에서야 차이점이 무엇인지 파악해보겠다.

ckpt 파일

일반적으로 이야기하는 ckpt파일은 .ckpt-data와 같으며, 딥러닝 모델을 제외한 학습한 가중치(weight)만 있는 파일. 모델 구조(graph)는 저장하지 않는다.

  • .ckpt-meta : 모델(graph)만 있는 파일
  • .ckpt-data : 딥러닝 모델을 제외한 학습한 가중치(weight)만 있는 파일. 모델 구조(graph)는 저장하지 않는다.

pb 파일

모델 구조와 가중치(weight) 모두 저장된 파일. freeze_graph.py를 통해서 만들 수 있고,'그래프를 프리징시킨다.'라고 하면 pb파일을 만들 것이라는 뜻이다.

 

h5 파일

Hierarchical Data Format (HDF)형식으로 저장되는 데이터. Keras에서는 모델 및 가중치(weight) 모두를 가지고 있는 파일이다.

 

참조

https://stackoverflow.com/questions/44516609/tensorflow-what-is-the-relationship-between-ckpt-file-and-ckpt-meta-and-ckp

https://fileinfo.com/extension/h5

https://tykimos.github.io/2017/06/10/Model_Save_Load/