728x90
반응형
1. HDF5란?
1-1. 정의
HDF는 계층적 데이터 형식(Hierarchical Data Format)의 약자로 대용량의 데이터를 저장하기 위한 파일 형식이다.
HDF4와 HDF5가 있지만, HDF5가 현재 표준이다.
파이토치에서는 텐서를 호환 가능한 형태로 저장해야 할 때 사용할 수 있다.
1-2. 장점
- XML과 동일하게 자기기술적으로 구성되어 있어 데이터 형식을 파일 안에 기술 가능하다.
- 자기기술적: 데이터의 내용과 구조를 모두 표현
- 많은 양의 데이터를 저장 가능하다.
- 검색 속도가 빠르다.
- 병렬 입출력을 지원한다.
- 데이터의 무작위 조회(Random Access)가 가능하다.
- 20여년 이상 개발되어온 포맷으로 안정적이다.
- 수많은 프로그래밍 언어와 오픈소스 라이브러리르 통한 API가 지원된다.
2. h5py
2-1. 정의 및 설치
파이썬은 h5py 라이브러리를 통해, HDF5 포맷을 지원한다. 넘파이 배열 형태로 전달하거나 반환받을 수 있다.
다음 명령어를 통해 h5py 라이브러리를 설치할 수 있다.
pip install h5py
2-2. 사용법
사용법은 다음과 같다.
In [1]:
import torch
import h5py
In [2]:
# 저장
points = torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
f = h5py.File('point.hdf5', 'w')
dset = f.create_dataset('dset1', data=points.numpy())
f.close()
In [3]:
# 읽기
f = h5py.File('point.hdf5', 'r')
dset = f['dset1'][:]
points2 = torch.from_numpy(dset)
f.close()
In [4]:
points2
Out[4]:
tensor([[1., 2., 3.],
[4., 5., 6.]])
'dset1'은 파일의 키에 해당한다.
3. Reference
728x90
반응형