Graph Data의 Batch 학습 (DataLoader, Custom DataLoader)

강하예진(Erica)·2023년 5월 1일
0

Graph Neural Network

목록 보기
7/10
post-thumbnail

그래프 데이터도 배치 단위로 모델에 넣을 수 있다. DataLoader() 메서드를 사용하면 된다. 다시 말해, Graph Data를 모델에 넣기 위해서는 먼저 DataLoader를 설정하고, 그 다음 학습 과정을 구현해야 한다.

DataLoader

DataLoader() 메서드는 기본 PyTorch 데이터 로더다. 반면, PyTorch Geometric에서는 그래프 데이터를 처리하기 위한 목적으로 별도의 데이터 로더를 제공한다. 이를 DataLoader라고 부르며, torch_geometric.data.DataLoader에서 찾을 수 있다.

torch_geometric.data.DataLoader는 그래프 데이터와 관련된 몇 가지 주요 기능을 제공한다.

  1. 그래프 데이터를 배치로 분할
  2. 노드 및 엣지 인덱스를 자동으로 업데이트
  3. 연속적인 그래프 구조를 유지

특히, 그래프 데이터를 다룰 때 torch_geometric.data.DataLoader를 사용하는 것이 권장된다. 그 이유는 다음과 같다.

그래프 데이터의 특성을 고려한 효율적인 배치 처리를 제공한다.
노드 및 엣지 인덱스를 자동으로 업데이트하여 코드를 더 간결하게 만들어 준다.
연속적인 그래프 구조를 유지하여, 데이터를 올바르게 처리할 수 있도록 한다.
그래프 데이터를 처리하는 경우, 이러한 기능을 활용하여 모델 학습 및 추론 과정이 더 효율적이고 정확해집니다. 따라서 그래프 데이터를 다루는 상황에서는 torch_geometric.data.DataLoader를 사용하는 것이 좋다.

Custom DataLoader

커스텀 데이터 로더(custom DataLoader)는 표준 데이터 로더가 제공하는 기능 외에도 사용자 정의 로직을 적용해야 할 때 사용된다. 이는 데이터 전처리, 증강(데이터셋 크기 늘리기), 또는 특정 배치 형식을 필요로 하는 경우에 사용할 수 있습니다.

커스텀 데이터 로더를 사용할 때 주로 고려하는 상황
1. 데이터 전처리: 원시 데이터를 모델에 입력하기 전에 특정한 전처리 과정을 거쳐야 할 때 커스텀 데이터 로더를 사용한다. 예를 들어, 이미지 데이터의 경우 특정 크기로 리사이징하거나, 픽셀 값을 정규화하는 등의 작업을 수행할 수 있다.

데이터 증강: 데이터 증강 기법을 적용하여 학습 데이터를 늘리고 모델의 일반화 성능을 향상시키려는 경우에도 커스텀 데이터 로더를 사용할 수 있다. 이미지 데이터를 기준으로, 회전, 반전, 확대/축소 등의 변환을 적용할 수 있다.

특정 배치 형식: 특정 형태의 배치를 구성해야 할 때 커스텀 데이터 로더를 사용한다. 예를 들어, 시퀀스 데이터를 처리하는 경우 가변 길이의 시퀀스를 동일한 길이로 패딩하여 배치를 구성할 수 있다.

PyTorch Geometric의 경우에도 torch_geometric.data.DataLoader가 일반적인 그래프 데이터 처리에 적합한 기능을 제공하지만, 특수한 경우에는 커스텀 데이터 로더를 구현할 수 있다. 이때는 torch.utils.data.DataLoader를 상속받아 필요한 메서드를 오버라이딩하여 구현하면 된다. 그러나 대부분의 상황에서는 PyTorch Geometric이 제공하는 기본 데이터 로더가 충분한 기능을 제공한다.

profile
Recommend System & BackEnd Engineering

0개의 댓글