로더는 처음 보는 클래스를 스스로 찾지 못해
Dense 같은 내장 레이어는 Keras가 이미 클래스를 알고 있어 쉽게 직렬화돼. 하지만 직접 만든 하위 클래스 레이어는 달라. 설정에는 레이어 이름이 문자열로 저장되지만, 로더는 그 문자열을 어떤 Python 클래스에 연결해야 할지 알 수 없어. 이때 Unknown layer 오류가 발생해.
등록과 get_config()가 복원 고리를 완성해
사용자 정의 레이어를 저장하고 복원하려면 등록과 get_config가 모두 필요해. @register_keras_serializable 데코레이터는 이름과 클래스를 레지스트리에 연결해 로더가 문자열을 올바른 Python 객체로 해석하게 해. get_config는 __init__ 인자인 units 등을 평범한 딕셔너리로 반환해 같은 설정으로 레이어를 다시 만들게 해. 먼저 super().get_config()를 호출해 기본 레이어의 설정을 물려받고 사용자 설정을 덧붙여.
package 이름 공간으로 충돌 막기
package= 인자는 등록 이름에 접두사를 붙여 my_package>MyCustomLayer처럼 만들어. 서로 다른 프로젝트가 모두 Attention이라는 레이어를 정의해도 충돌하지 않게 하는 장치야. 패키지 문자열은 저장 파일의 정체성 일부가 되므로 안정적인 값을 골라 일관되게 유지해.