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(Python ソースコードから切り離されたモデルのエクスポート)をサポートします。
  • Distributed Training Support: カスタム TensorFlow 分散戦略を用いた分散トレーニング用ツールを提供し、勾配の平均化やバッチ正規化統計に対するユーザーの制御を維持します。