Batch Iteration
배치 반복(Batch Iteration)은 머신 러닝 및 데이터 처리에서 대용량 데이터 세트를 보다 효율적으로 처리하기 위해 사용되는 스킬입니다. 메모리 집약적일 수 있는 전체 데이터 세트를 한 번에 처리하는 대신, 데이터는 더 작고 관리하기 쉬운 배치로 처리됩니다.
Batch Iterator(배치 반복자)를 만드는 단계별 방법은 아래와 같습니다.
- 샘플 수 결정(Dtermine the Number of Samples) : 데이터 세트의 총 샘플 수를 계산합니다.
- 배치로 반복(Iterate in Batches) : 지정된 배치 크기 단위로 데이터 세트를 반복합니다.
- 배치 생성(Yield Batches) : 각 반복에서 X에서 샘플 배치를 생성하고, 만약 제공된 경우 y에서 해당 샘플을 생성합니다.
이러한 방법은 효율적인 처리를 보장하고 머신 러닝 워크 플로우의 학습 및 평가 단계에 모두 사용할 수 있습니다.
import numpy as np
X = np.array([[1, 2],
[3, 4],
[5, 6],
[7, 8],
[9, 10]])
y = np.array([1,2,3,4,5])
def batch_iterator(X, y=None, batch_size=None):
n_samples = X.shape[0]
batches = []
for i in range(0, n_samples, batch_size):
begin, end = i, min(i+batch_size, n_samples)
print(begin, end)
if y is not None:
batches.append([X[begin:end], y[begin:end]])
else:
batches.append(X[begin:end])
print(batches)
return batches
batch_iterator(X,y,batch_size=64)
반응형