[Deep Learning & Machine Learning] Batch Iterator 만들어보자

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)

 

 

반응형