Об этом проекте
Sonnet — это библиотека нейтронных сетей с открытым исходным кодом, разработанная исследователями из DeepMind и предназначенная для работы поверх TensorFlow 2. Её основная цель — предоставить простые, композируемые абстракции, которые облегчают исследования в области машинного обучения в различных областях, включая обучение с учителем, без учителя и обучение с подкреплением.
Основная модель программирования в Sonnet вращается вокруг класса `snt.Module`. Модули — это самодостаточные единицы, которые могут содержать ссылки на параметры, другие модули и методы. Такая конструкция гарантирует, что модули не зависят друг от друга, что обеспечивает высокую гибкость в их использовании. В отличие от некоторых фреймворков, Sonnet не навязывает конкретный цикл обучения или жёсткую структуру; вместо этого он поощряет пользователей создавать собственную логику обучения или использовать существующие решения.
Ключевые особенности включают:
- **Предопределённые модули**: Sonnet поставляется с распространёнными строительными блоками, такими как `snt.Linear`, `snt.Conv2D` и `snt.BatchNorm`, а также с готовыми сетями, например MLP.
- **Пользовательские модули**: Пользователям рекомендуется создавать подклассы `snt.Module` для создания собственных слоёв или сетей. Создание подклассов даёт автоматические преимущества, такие как управление параметрами (свойства `variables` и `trainable_variables`), области имён для визуализации в TensorBoard и поддержка контрольных точек TensorFlow.
- **Сериализация**: Библиотека поддерживает сохранение и загрузку моделей с помощью Python `pickle` (хотя это не рекомендуется из-за хрупкости) и нативных форматов контрольных точек и Saved Model TensorFlow. Это обеспечивает надёжное сохранение и развёртывание моделей.
- **Распределённое обучение**: Sonnet поддерживает распределённое обучение с использованием пользовательских стратегий распределения TensorFlow. Он даёт пользователям полный контроль над усреднением градиентов и синхронизацией статистики пакетной нормализации, а не встраивает эти поведения в библиотеку автоматически.
Установка требует TensorFlow 2 и TensorFlow Probability, после чего устанавливается `dm-sonnet`. Примеры доступны через блокноты Google Colab для таких задач, как классификация MNIST, обучение GAN и распределённое обучение CIFAR-10.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.