본문 바로가기
C.W.K.
Stream
Lesson 04 of 08 · published

PyTorch 백엔드

~8 min · backend

Level 0Keras 도제
0 XP0/97 lessons0/20 achievements
0/120 XP to next level120 XP to go0% complete

연구 생태계와 바로 이어진다

PyTorch 2.1.0 이상을 백엔드로 고르면 연구 현장에서 널리 쓰는 생태계에 Keras를 그대로 연결할 수 있어. Hugging Face Transformers, torchvision, torchaudio뿐 아니라 새 사전 학습 모델도 PyTorch를 먼저 지원하는 경우가 많아. 즉시 실행 방식이 기본이라 중단점을 걸고 텐서를 확인하는 평범한 Python 디버깅도 자연스러워.

Keras 모델이 실제 torch.nn.Module이 된다

이 백엔드에서는 Keras 레이어와 모델이 실제 torch.nn.Module 인스턴스가 돼(코드 블록 참고). 겉을 감싼 모형이 아니라 실제 타입이므로 Keras 모델을 직접 작성한 PyTorch 학습 루프에 넣거나 부모 nn.Module에 등록할 수 있어. 매개변수를 torch.optim 옵티마이저에 넘기는 것도 가능하지. 평소에는 compilefit의 편의를 누리고, 필요한 순간에는 torch.autograd 수준으로 내려갈 수 있다는 뜻이야.

다만 KERAS_BACKEND=torch일 때 모델의 입력과 출력은 PyTorch 텐서야. TensorFlow 텐서처럼 다른 백엔드 객체를 같은 계산에 섞으면 자료형 오류가 나. 백엔드와 무관한 코드는 keras.ops로 작성해야 해.

Code

Keras 모델이 실제 torch.nn.Module이 되는지 확인·python
os.environ["KERAS_BACKEND"] = "torch"
import keras
from keras import layers

model = keras.Sequential([
    layers.Dense(128, activation="relu"),
    layers.Dense(10, activation="softmax"),
])

# Keras model IS a torch.nn.Module
print(isinstance(model, torch.nn.Module))  # True

External links

Exercise

MNIST 스크립트의 백엔드를 KERAS_BACKEND=torch로 바꾸고 같은 compile()/fit() 코드가 동작하는지 확인해. 배치 안에서 print(type(x))를 실행해 입력이 torch.Tensor인지도 살펴봐.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.