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

Keras 3는 API와 실행 엔진을 어떻게 분리했나

~8 min · backend

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

Keras 3에서는 환경 변수 하나로 TensorFlow, PyTorch, JAX 가운데 실행 백엔드를 고를 수 있어. 모델을 만드는 코드도 .fit()을 호출하는 방식도 그대로야. 이 트랙에서는 그 분리가 어떻게 가능한지, 서로 다른 백엔드의 텐서를 섞으면 왜 깨지는지, keras.ops로 이동 가능한 연산을 작성하는 법을 배워.

계산의 의도와 실행 방법을 나눈다

레이어를 만들고 연결하며 학습 방법을 정하는 코드는 무엇을 계산할지 설명해. 실제로 그 계산을 어떤 커널과 장치에서 수행할지는 백엔드가 결정하지. Keras 3는 이 두 책임을 명확히 나눴기 때문에 같은 모델 파일을 세 실행 엔진 위에 올릴 수 있어.

자동 미분, 장치 배치, 커널 선택, 그래프 컴파일은 모두 실행 엔진의 깊은 기능이라 이 분리는 쉽지 않아. Keras 3는 별도의 엔진을 흉내 내지 않고 가장 작은 연산부터 현재 불러온 백엔드의 실제 구현으로 전달하는 방식을 택했어.

keras.ops가 연결 고리야

keras.ops.matmul을 호출하면 선택된 백엔드에 따라 jax.numpy.matmul, tf.matmul, torch.matmul 가운데 알맞은 연산이 실행돼. 기본 레이어, 손실 함수, 평가지표, 옵티마이저도 모두 이 공통 연산 계층 위에 작성돼 있어서 별도 설정 없이 같은 이동성을 얻어.

저장 파일도 백엔드에서 자유롭다

KerasTensor는 모델을 구성할 때 계산 그래프만 표현하는 기호 텐서야. 특정 프레임워크의 텐서에 묶이지 않으므로 .keras 파일에도 특정 백엔드 연산이 들어가지 않아. 오늘 JAX로 학습한 파일을 내일 TensorFlow를 쓰는 동료가 그대로 불러올 수 있는 이유가 여기 있어.

External links

Exercise

keras.io의 ‘Keras 3 announcement’를 읽고 Chollet이 서로 분리됐다고 설명한 세 가지를 찾아 본인 말로 정리해.

Progress

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

댓글 0

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

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