À propos du projet
Sonnet est une bibliothèque de réseaux neuronaux open-source développée par les chercheurs de DeepMind, conçue pour fonctionner au-dessus de TensorFlow 2. Son objectif principal est de fournir des abstractions simples et composablees qui facilitent la recherche en apprentissage automatique dans divers domaines, notamment l'apprentissage supervisé/non supervisé et l'apprentissage par renforcement.
Le modèle de programmation central de Sonnet repose sur la classe `snt.Module`. Les modules sont des unités autonomes capables de contenir des références aux paramètres, à d'autres modules et à des méthodes. Cette conception garantit que les modules sont découplés les uns des autres, offrant ainsi une grande flexibilité dans leur utilisation. Contrairement à certains frameworks, Sonnet n'impose pas de boucle d'entraînement spécifique ni de structure opinionnée ; il encourage plutôt les utilisateurs à construire leur propre logique d'entraînement ou à adopter des solutions existantes.
Les fonctionnalités clés incluent :
- **Modules prédéfinis** : Sonnet fournit des blocs de construction courants tels que `snt.Linear`, `snt.Conv2D` et `snt.BatchNorm`, ainsi que des réseaux pré-construits comme les MLP.
- **Modules personnalisés** : Les utilisateurs sont encouragés à sous-classer `snt.Module` pour créer des couches ou des réseaux personnalisés. L'héritage de classe apporte des avantages automatiques tels que la gestion des paramètres (propriétés `variables` et `trainable_variables`), l'espacement des noms pour la visualisation TensorBoard et le support du checkpointing TensorFlow.
- **Sérialisation** : La bibliothèque prend en charge la sauvegarde et le chargement des modèles via le `pickle` Python (bien que déconseillé en raison de sa fragilité) et les formats natifs de checkpointing et Saved Model de TensorFlow. Cela permet une persistance et un déploiement robustes des modèles.
- **Entraînement distribué** : Sonnet offre un support pour l'entraînement distribué en utilisant des stratégies de distribution TensorFlow personnalisées. Il donne aux utilisateurs un contrôle total sur la moyenne des gradients et la synchronisation des statistiques de normalisation par lots, au lieu d'intégrer automatiquement ces comportements dans la bibliothèque.
L'installation nécessite TensorFlow 2 et TensorFlow Probability, suivie de l'installation de `dm-sonnet`. Des exemples sont disponibles via des notebooks Google Colab pour des tâches telles que la classification MNIST, l'entraînement de GAN et l'entraînement distribué sur CIFAR-10.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.