하나의 이름공간으로 모든 백엔드를 부른다
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.image는resize,crop_images,pad_images,rgb_to_grayscale같은 영상 연산을 제공해.keras.random은normal,uniform,dropout을SeedGenerator와 함께 제공해.
난수는 백엔드의 전역 난수 생성기가 아니라 keras.random과 SeedGenerator로 다뤄야 해. 그래야 세 백엔드에서 재현성을 유지하면서 JAX의 순수 함수 규칙도 지킬 수 있어.
TensorFlow 전용 연산을 옮기는 법
기존 TensorFlow 사용자 정의 레이어는 대개 연산 이름을 대응되는 NumPy식 이름으로 바꾸면 돼. tf.reduce_sum은 keras.ops.sum, tf.concat은 keras.ops.concatenate, tf.range는 keras.ops.arange로 옮겨. 같은 방식으로 tf.reduce_mean은 keras.ops.mean, tf.gather는 keras.ops.take, tf.clip_by_value는 keras.ops.clip이야.
이렇게 바꾼 레이어는 TensorFlow 전용 코드를 벗어나 PyTorch와 JAX에서도 수정 없이 실행할 수 있어.