google-deepmind/sonnet

TensorFlow-based neural network library

What it solves

Sonnet은 머신러닝 연구를 위한 라이브러리로, 신경망 구축을 단순화합니다. 특정 학습 프레임워크나 의견에 얽매이지 않고 연구자들이 복잡한 모델을 만들 수 있도록 하는 조합 가능한 추상화 집합을 제공합니다.

How it works

이 라이브러리는 TensorFlow 2 위에 구축되었으며, snt.Module 개념을 중심으로 설계되었습니다. Modules는 자체 포함되고 분리된 단위로, 파라미터, 다른 모듈, 입력을 처리하는 메서드를 보유할 수 있습니다. 사용자는 snt.Linearsnt.nets.MLP와 같은 사전 정의된 모듈을 사용하거나 snt.Module을 상속하여 직접 만들 수 있습니다.

Who it’s for

TensorFlow 생태계 내에서 모델 및 학습 과정에 높은 수준의 제어가 필요한 머신러닝 연구자를 위해 설계되었습니다.

Highlights

  • Unopinionated Design: 학습 프레임워크를 포함하지 않으며, 학습 루프와 옵티마이저 선택을 사용자에게 맡깁니다.
  • Composable Abstractions: snt.Module 시스템을 사용해 네트워크 구성 요소를 쉽게 중첩할 수 있습니다.
  • Flexible Serialization: Python의 pickle, TensorFlow Checkpointing(학습 진행 상황 저장), TensorFlow Saved Model(파이썬 소스 코드와 분리된 모델 내보내기)을 지원합니다.
  • Distributed Training Support: 사용자에게 그래디언트 평균화와 배치 정규화 통계에 대한 제어를 유지하면서, 커스텀 TensorFlow 분산 전략을 통한 분산 학습 도구를 제공합니다.