딥러닝 초보자를 위한 PyTorch와 TensorFlow 3.0 가이드

딥러닝 초보자를 위한 PyTorch와 TensorFlow 3.0 가이드

딥러닝 초보자를 위한 PyTorch와 TensorFlow 3.0 가이드

딥러닝은 처음 접하면 복잡하게 느껴질 수 있습니다. 저도 처음 시작할 때는 용어와 도구가 낯설어서 막막했지만, PyTorchTensorFlow 3.0을 사용하며 점차 익숙해졌습니다. 이 글에서는 딥러닝 초보자를 위해 기본 개념부터 설치, 그리고 첫 모델을 학습시키는 과정을 단계별로 정리했습니다. 제가 시행착오를 겪으며 배운 점을 바탕으로, 쉽게 따라 할 수 있는 가이드를 제공하고자 합니다.


딥러닝이란 무엇인가?

딥러닝은 인공지능(AI)의 한 분야로, 인간의 뇌 구조를 모방한 신경망을 통해 데이터를 학습합니다. 이미지 분류, 음성 인식, 텍스트 생성 등 다양한 작업에 활용되죠. 처음에는 "신경망"이나 "레이어" 같은 용어가 어렵게 들렸지만, 결국 데이터를 넣고 결과를 예측하는 과정이라는 걸 알게 되었습니다. 이 과정을 PyTorch와 TensorFlow 같은 도구로 구현할 수 있습니다.


1. 환경 설정: 설치부터 시작하기

딥러닝을 시작하려면 먼저 작업 환경을 준비해야 합니다. PyTorch와 TensorFlow 3.0을 설치하는 방법을 간단히 설명하겠습니다.

PyTorch 설치

PyTorch는 설치가 간편하고 초보자에게 친화적입니다. 공식 사이트에서 자신의 운영체제와 GPU 유무에 맞는 명령어를 확인할 수 있습니다. 저는 GPU가 있는 환경에서 아래 명령어로 설치했습니다.

pip install torch torchvision

설치 후, Python에서 import torch를 실행해 오류 없이 작동하면 성공입니다. GPU를 사용할 경우 torch.cuda.is_available()가 True를 반환하는지 확인하세요.

TensorFlow 3.0 설치

TensorFlow 3.0도 비슷하게 설치할 수 있습니다. 2025년 3월 기준 최신 버전을 받으려면 아래 명령어를 사용하면 됩니다.

pip install tensorflow

설치가 끝나면 import tensorflow as tf를 실행하고, tf.__version__로 버전을 확인해 보세요. GPU 지원은 tf.config.list_physical_devices('GPU')로 체크할 수 있습니다.


2. 첫 모델 만들기: 이미지 분류 예제

설치가 끝났다면 간단한 모델을 만들어 보겠습니다. 초보자에게는 MNIST 숫자 이미지 분류가 좋은 시작점입니다. PyTorch와 TensorFlow로 각각 구현해 보겠습니다.

PyTorch로 MNIST 분류

PyTorch는 직관적인 코드로 빠르게 모델을 만들 수 있습니다. 아래는 간단한 신경망 예제입니다.

import torch
import torch.nn as nn
import torchvision
import torchvision.transforms as transforms

# 데이터 로드
train_dataset = torchvision.datasets.MNIST(root='./data', train=True, transform=transforms.ToTensor(), download=True)
train_loader = torch.utils.data.DataLoader(dataset=train_dataset, batch_size=64, shuffle=True)

# 모델 정의
class SimpleNN(nn.Module):
    def __init__(self):
        super(SimpleNN, self).__init__()
        self.flatten = nn.Flatten()
        self.fc1 = nn.Linear(28*28, 128)
        self.fc2 = nn.Linear(128, 10)
    
    def forward(self, x):
        x = self.flatten(x)
        x = torch.relu(self.fc1(x))
        x = self.fc2(x)
        return x

model = SimpleNN()
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)

# 학습
for epoch in range(5):
    for images, labels in train_loader:
        outputs = model(images)
        loss = criterion(outputs, labels)
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()
    print(f"Epoch [{epoch+1}/5], Loss: {loss.item():.4f}")

이 코드는 MNIST 데이터를 학습해 숫자를 분류합니다. 저는 처음 실행했을 때 5분도 안 걸려서 결과를 볼 수 있었습니다.

TensorFlow 3.0으로 MNIST 분류

TensorFlow는 Keras API를 통해 쉽게 모델을 정의할 수 있습니다. 같은 작업을 아래처럼 구현했습니다.

import tensorflow as tf

# 데이터 로드
(train_images, train_labels), (_, _) = tf.keras.datasets.mnist.load_data()
train_images = train_images / 255.0

# 모델 정의
model = tf.keras.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    tf.keras.layers.Dense(128, activation='relu'),
    tf.keras.layers.Dense(10, activation='softmax')
])

model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

# 학습
model.fit(train_images, train_labels, epochs=5, batch_size=64)

TensorFlow는 코드가 더 간결해서, 저도 처음엔 이 방식이 편하게 느껴졌습니다. 학습 후 정확도가 95% 이상 나오는 걸 확인할 수 있었습니다.


3. 초보자가 알아두면 좋은 팁

딥러닝을 시작하면서 몇 가지 깨달은 점이 있습니다.

  • 작게 시작하세요: 복잡한 모델 대신 간단한 예제부터 익히는 게 좋습니다. MNIST 같은 데이터셋으로 감을 잡은 뒤 점차 확장해 보세요.
  • 문서를 참고하세요: PyTorch와 TensorFlow 공식 문서는 초보자에게도 큰 도움이 됩니다. 에러가 나면 검색보다 문서를 먼저 보는 습관을 들였습니다.
  • 하드웨어 확인: GPU가 없어도 학습은 가능하지만, 시간이 오래 걸릴 수 있습니다. Colab 같은 무료 클라우드 서비스를 활용하는 것도 방법입니다.

마무리

딥러닝은 처음엔 어렵게 느껴지지만, 작은 성공을 반복하며 익숙해질 수 있습니다. PyTorch와 TensorFlow 3.0은 초보자도 접근하기 좋은 도구이며, 이번 가이드가 첫걸음을 내딛는 데 도움이 되기를 바랍니다. 앞으로 더 많은 실험을 통해 자신만의 길을 찾아가시길 응원합니다.

Comments