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

keras.ops — 공통 연산 계층

~10 min · backend

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

하나의 이름공간으로 모든 백엔드를 부른다

keras.ops는 Keras 3 다중 백엔드 구조의 중심이자 사용자 정의 계산을 작성할 때 직접 쓰는 API야. NumPy API에 더해 합성곱, 활성화 함수, 교차 엔트로피처럼 신경망에 필요한 연산도 제공하고, 호출을 현재 백엔드로 전달해. 이름과 인자 형식을 NumPy에 맞췄으므로 NumPy를 안다면 대부분을 새로 배울 필요가 없어.

자주 사용하는 네 이름공간

  • keras.ops에는 matmul, sum, mean, reshape, concatenate, einsum, arange, clip 같은 NumPy식 연산이 있어.
  • keras.ops.nn에는 softmax, sigmoid, relu, conv, depthwise_conv, binary_crossentropy 같은 신경망 연산이 있어.
  • keras.ops.imageresize, crop_images, pad_images, rgb_to_grayscale 같은 영상 연산을 제공해.
  • keras.randomnormal, uniform, dropoutSeedGenerator와 함께 제공해.

난수는 백엔드의 전역 난수 생성기가 아니라 keras.randomSeedGenerator로 다뤄야 해. 그래야 세 백엔드에서 재현성을 유지하면서 JAX의 순수 함수 규칙도 지킬 수 있어.

TensorFlow 전용 연산을 옮기는 법

기존 TensorFlow 사용자 정의 레이어는 대개 연산 이름을 대응되는 NumPy식 이름으로 바꾸면 돼. tf.reduce_sumkeras.ops.sum, tf.concatkeras.ops.concatenate, tf.rangekeras.ops.arange로 옮겨. 같은 방식으로 tf.reduce_meankeras.ops.mean, tf.gatherkeras.ops.take, tf.clip_by_valuekeras.ops.clip이야.

이렇게 바꾼 레이어는 TensorFlow 전용 코드를 벗어나 PyTorch와 JAX에서도 수정 없이 실행할 수 있어.

External links

Exercise

call()에서 keras.ops.softmax와 keras.ops.matmul만 사용하는 사용자 정의 Layer를 작성해. 코드를 바꾸지 않고 세 백엔드에서 실행한 뒤 출력이 허용 오차 안에서 일치하는지 확인해.

Progress

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

댓글 0

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

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