- h5py + HDF5Mtrix
- data generator library
csv 파일로 처리하다가 어쩌구
>> 메모리 부족으로 생기는 오류 같아요..
>> 대용량 데이터를 처리하는 방법에 대해 알아봅시다!
>> hdf5
1. tensorflow version
2. Import
import h5py
from tensorflow.keras.utils import HDF5Matrix
3. Create h5py data
data = pd.read_csv('data')
# 구조 생성시 데이터 불러와 넣어주는 작업 필요
# 데이터 나눠서 부르고 인덱스로 구분지어 입력 가능
f = h5py.File('path', 'w')
"""
데이터 저장 위한 구조 생성
keyword: 데이터 구조 접근 | data size: row, col | dtype
"""
X = f.create_dataset('x', (10000000, 22), dtye='float32')
Y = f.create_dataset('y', (10000000, 1), dtype='float32')
# 데이터 입력하기
X[:] = data.iloc[:, 1:] # f['x'] = data.iloc[:, 1:]
Y[:] = data.iloc[:, 0] # f['y'] = data.iloc[:, 0]
# 나누어 입력하는 방법
# X[1:50 = data.iloc[1:50. 1:]
f.close()
4. Training
# load path
tx = HDF5Matrix('h5py path' 'keyword')
ty = HDF5Matrix('h5py path' 'keyword')
# batch 만큼의 데이터만 실제 메모리에 올려 학습에 사용
# batch 사이즈 잘 조절 > 메모리 에러에서 자유!!
# pytorch
model = Model() # 딥러닝 모델 생성
for e in range(1, 100):
for j in range(int(len(data/5000))):
# ...
model.forward(tx[j*5000: (j+1)*5000], ty[j*5000:(j+1)*5000])
# ...
대용량 csv 파일을 hdf5 파일로 저장
scaler.pkl
test.hdf5
train.hdf5
val.hdf5
hdf5 viewer 설치 후 확인 가능
더보기
pickle: 파이썬 객체를 직렬화 | 역직렬화 하는 기능 제공
> 객체를 파일에 저장하거나 읽어올 때 사용한다
ex_
data = { ... }
# 객체를 pkl 파일로 저장
with open('data.pkl', 'wb') as file:
pickle.dump(data, file)
# pkl 파일에서 객체 불러오기
with open('data.pkl', 'rb') as file:
loaded_data = pickle.load(file)
- window - nvidia-smi 지속 출력 방법
- 그냥 궁금한거: mac에서는? [blog]
'👩💻 도비는 공부중 > 💼 하계연구연수생(2023)' 카테고리의 다른 글
Time Series Data > Machine Learning (0) | 2023.08.31 |
---|---|
[공유 세미나] 2023 상반기 학회 (0) | 2023.08.18 |
[미해결] [Unreal] Motion Capture Data | Visualizing with UE5 (0) | 2023.08.18 |
[Python] configparser (0) | 2023.08.18 |
[Python] 실행파일(.exe) 만들기 | pyinstaller (0) | 2023.08.11 |