sonnet: TensorFlow 2 用の構成可能なニューラルネットワーク抽象化ライブラリ
sonnet: TensorFlow 2 用の構成可能なニューラルネットワーク抽象化ライブラリ
何を解決するか
Sonnet は、ニューラルネットワークの構築を簡素化する機械学習研究用のライブラリです。特定のトレーニングフレームワークや独自のワークフローを強制することなく、研究者が複雑なモデルを構築できるようにする、一連の構成可能な抽象化を提供します。
仕組み
このライブラリは TensorFlow 2 の上に構築されており、snt.Module という概念を中心に構成されています。モジュールは、パラメータ、他のモジュール、および入力を処理するためのメソッドを保持できる、自己完結型でデカップリングされたユニットです。ユーザーは、snt.Linear や snt.nets.MLP のような定義済みのモジュールを使用するか、snt.Module をサブクラス化することで独自のモジュールを作成できます。
対象ユーザー
モデルやトレーニングプロセスに対して高度な制御が必要な機械学習研究者、特に TensorFlow エコシステム内で作業している研究者向けに設計されています。
ハイライト
- Unopinionated Design: トレーニングフレームワークを含まず、トレーニングループの設計やオプティマイザの選択をユーザーに委ねます。
- Composable Abstractions:
snt.Moduleシステムを使用して、ネットワークコンポーネントの容易なネストと入れ子構造を可能にします。 - Flexible Serialization: Python の pickle、トレーニングの進捗を保存するための TensorFlow Checkpointing、および Python ソースコードから切り離されたモデルをエクスポートするための TensorFlow Saved Model をサポートしています。
- Distributed Training Support: カスタム TensorFlow distribution strategies を介して分散トレーニングのためのツールを提供し、勾配の平均化やバッチ正規化の統計量に対するユーザーの制御を維持します。
Sources
- undefinedgoogle-deepmind/sonnet