본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 17. 03:22

PyTorch 및 Lightning AI를 활용한 신경망 구축 Part 2: 학습을 위한 DataLoader 생성

요약

PyTorch Lightning을 사용하여 신경망 구축 워크플로우를 개선하는 방법을 다룹니다. nn.Module 대신 LightningModule을 사용하고, TensorDataset과 DataLoader를 활용해 학습 데이터를 효율적으로 관리하는 과정을 설명합니다.

핵심 포인트

  • nn.Module을 LightningModule로 변경하여 워크플로우 최적화
  • TensorDataset을 사용하여 입력값과 레이블을 결합
  • DataLoader를 통한 배치 처리 및 데이터 셔플링 구현
  • 데이터 서브셋 활용을 통한 디버깅 용이성 확보

이전 기사에서 우리는 Lightning AI를 사용하여 신경망 구축을 시작했습니다.

이 기사에서는 몇 가지 수정을 가하여 동일한 신경망을 계속해서 구축해 보겠습니다.

이전과 거의 동일한 클래스를 정의하겠지만, 몇 가지 중요한 변경 사항이 있습니다.

class BasicLightningTrain(L.LightningModule):
    def __init__(self):
        super().__init__()
...

무엇이 바뀌었나요?

주요 차이점은 부모 클래스를 nn.Module에서 LightningModule로 변경했다는 것입니다.

또한 learning_rate라고 불리는 새로운 변수를 도입했습니다:

self.learning_rate = 0.01

현재로서는 이를 단순히 플레이스홀더 (placeholder) 값으로 설정해 둔 상태입니다.

현재 문제점

현재 **용량(dose)이 0.5**일 때, **효과(effectiveness)가 17**이 되는데, 이는 예상치보다 훨씬 높은 값입니다.

이는 여전히 final_bias를 최적화해야 함을 의미합니다.

학습 데이터 생성하기

이전과 마찬가지로, 먼저 학습 입력값(training inputs)을 생성합니다:

inputs = torch.tensor([0., 0.5, 1.])

다음으로, **알려진 출력값(known output values)**을 나타내는 레이블(labels)을 정의합니다:

labels = torch.tensor([0., 1., 0.])

DataLoader로 데이터 래핑하기

Lightning을 사용하고 있기 때문에 한 가지 추가 단계가 있습니다.

학습 데이터를 DataLoader로 래핑(wrap)해야 합니다.

먼저, 입력값과 레이블을 dataset이라는 이름의 TensorDataset으로 결합합니다.

그런 다음, 해당 데이터셋을 사용하여 DataLoader를 생성합니다.

dataset = TensorDataset(
    inputs,
    labels
...

왜 DataLoader를 사용하나요?

DataLoader는 다음과 같은 이유로 유용합니다:

  • 데이터를 배치 (batches) 단위로 접근하기 쉽게 만들어 줍니다.
  • 매 에포크 (epoch)마다 데이터를 셔플 (shuffle) 하기 쉽게 만들어 줍니다.
  • 디버깅을 위해 데이터의 더 작은 서브셋 (subsets) 을 사용할 수 있게 해줍니다.

이제 데이터가 DataLoader에 로드되었으므로, final_bias를 최적화할 준비가 되었습니다.

다음 기사에서는 Lightning이 최적화 과정을 어떻게 단순화하는지 살펴보겠습니다.

AI 에이전트는 코드를 빠르게 작성합니다. 하지만 사용자에게 알리지 않고 조용히 로직을 제거하거나, 동작을 변경하고, 버그를 유발하기도 합니다. 이러한 문제는 종종 프로덕션 (production) 환경에서 발견되곤 합니다.

git-lrc가 이 문제를 해결합니다. 이 도구는 git 커밋에 후킹(hook)하여 모든 diff가 반영되기 전에 리뷰를 수행합니다. 설정은 60초면 충분하며, 완전히 무료입니다.

모든 피드백과 기여자를 환영합니다! 온라인에서 소스 코드를 확인할 수 있으며 누구나 사용할 준비가 되어 있습니다.

Github에서 ⭐ star를 눌러주세요

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0