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

백엔드마다 달라지는 경계

~8 min · backend

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

추상화가 끝나는 지점을 알아야 해

백엔드를 바꿔도 유지되는 부분과 그렇지 않은 부분을 알아야 Keras의 추상화를 안전하게 믿을 수 있어. Keras API 안에서 작성한 코드는 거의 그대로 남고, 차이는 각 백엔드의 고유 객체를 직접 만지는 경계에서 나타나.

백엔드가 달라도 그대로인 것

  • Sequential, Functional, Subclassing으로 작성한 모델 정의
  • model.compile()model.fit()으로 구성한 학습 흐름
  • EarlyStopping, ModelCheckpoint 같은 콜백
  • .keras 저장 형식
  • 모든 keras.ops 연산

고유 기능으로 내려갈 때 달라지는 것

원시 텐서를 꺼내거나 장치를 직접 지정하고, 백엔드 전용 라이브러리를 섞기 시작하면 다음 차이가 드러나.

측면TensorFlowPyTorchJAX
텐서 자료형tf.Tensortorch.Tensorjax.Array
장치 관리tf.device.to(device)jax.devices()
레이어의 정체Keras 레이어torch.nn.ModuleKeras 레이어
JIT 컴파일tf.functiontorch.compilejax.jit(기본)

Keras와 keras.ops 안에 머물면 이 차이를 대부분 신경 쓰지 않아도 돼. 고유 API로 내려가야 한다면 그 경계를 코드에서 분명히 표시해. 백엔드를 바꿀 때 수정해야 할 곳이 바로 그 경계뿐이기 때문이야.

External links

Exercise

같은 모델과 학습 루프를 세 백엔드에서 실행해. 백엔드 전용 코드가 남아 있는 곳을 모두 적고, 가능하면 그 목록이 비도록 공통 API로 바꿔.

Progress

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

댓글 0

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

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