THINC-это легкая библиотека глубокого обучения , которая предлагает элегантный API функционального программирования для сочинения моделей с поддержкой слоев, определенных в других структурах, таких как Pytorch, Tensorflow и MxNet . Вы можете использовать THINC в качестве уровня интерфейса, автономный инструментарий или гибкий способ разработки новых моделей. Предыдущие версии THINC тихо работали в производстве в тысячах компаний, как через Spacy, так и в Prodigy. Мы написали новую версию, чтобы пользователи сочиняли, настраивали и развернули пользовательские модели , созданные с их любимыми рамками.
mypy
. Thinc совместим с Python 3.6+ и работает на Linux , MacOS и Windows . Последние выпуски с двоичными колесами доступны от PIP. Прежде чем установить THINC и его зависимости, убедитесь, что ваши pip
, setuptools
и wheel
актуальны. Для самых последних выпусков рекомендуется PIP 19.3 или новее.
pip install -U pip setuptools wheel
pip install thinc
См. Расширенные документы по установке для получения подробной информации о дополнительных зависимостях для различных бэкэндов и графического процессора. Вы также можете настроить проверку статического типа, чтобы воспользоваться системой типа Thinc.
️ Если вы установили Pytorch и используете Python 3.7+, удалите пакетdataclasses
с помощьюpip uninstall dataclasses
, поскольку он мог быть установлен с помощью Pytorch и несовместимо с Python 3.7+.
Также см. /examples
Directory и документацию по использованию для получения дополнительных примеров. Большинство примеров - ноутбуки Jupyter - чтобы запустить их в Google Colab (с поддержкой GPU!) Нажмите кнопку рядом с именем ноутбука.
Блокнот | Описание |
---|---|
intro_to_thinc | Все, что вам нужно знать, чтобы начать. Создание и обучение модели на данных MNIST с использованием файлов конфигурации, регистрации пользовательских функций и обертывания моделей Pytorch, TensorFlow и MXNET. |
transformers_tagger_bert | Как использовать Thinc, transformers и Pytorch для обучения теггера части речи. От определения модели и конфигурации до обучающей цикла. |
pos_tagger_basic_cnn | Реализация и обучение базовой CNN для модели тегов частичной речи без внешних зависимостей и использования различных уровней системы конфигурации THINC. |
parallel_training_ray | Как настроить синхронное и асинхронное обучение сервера параметров с Thinc и Ray. |
Просмотреть больше →
Документация | Описание |
---|---|
Введение | Все, что вам нужно знать. |
Концепция и дизайн | Концептуальная модель Тинка и как она работает. |
Определение и использование моделей | Как составить модели и обновить состояние. |
Система конфигурации | Система конфигурации Thinc и реестр функций. |
Интеграция Pytorch, Tensorflow & Mxnet | Совместимость с структурами машинного обучения |
Слои API | Учиты веса, трансформации, комбинаторы и обертки. |
Проверка типа | Проверьте тип ваших модельных определений и многое другое. |
Модуль | Описание |
---|---|
thinc.api | Пользовательский API. Все классы и функции должны быть импортированы отсюда. |
thinc.types | Пользовательские типы и обработки данных. |
thinc.model | Model класс. Все модели THINC являются экземпляром (не подклассом) Model . |
thinc.layers | Слои. Каждый слой реализован в своем собственном модуле. |
thinc.shims | Интерфейс для внешних моделей, реализованных в Pytorch, Tensorflow и т. Д. |
thinc.loss | Функции для расчета потерь. |
thinc.optimizers | Функции для создания оптимизаторов. В настоящее время поддерживает «ваниль» SGD, Adam и Radam. |
thinc.schedules | Генераторы для разных ставок, графиков, распадов или серий. |
thinc.backends | Бэкэнды для numpy и cupy . |
thinc.config | Система реестра конфигурации и валидации и функций. |
thinc.util | Коммунальные услуги и вспомогательные функции. |
Thinc использует black
для автоматического форматирования, flake8
для личинга и mypy
для проверки типов. Весь код написан совместим с Python 3.6+ , с подсказками типа, где это возможно. Смотрите ссылку на тип для более подробной информации о пользовательских типах Thinc.
Создание THINC из источника требует, чтобы полные зависимости, перечисленные в requirements.txt
. Вам также понадобится компилятор, чтобы построить расширения C.
git clone https://github.com/explosion/thinc
cd thinc
python -m venv .env
source .env/bin/activate
pip install -U pip setuptools wheel
pip install -r requirements.txt
pip install --no-build-isolation .
В качестве альтернативы установите в редактируемом режиме:
pip install -r requirements.txt
pip install --no-build-isolation --editable .
Или установив PYTHONPATH
:
export PYTHONPATH= ` pwd `
pip install -r requirements.txt
python setup.py build_ext --inplace
THINC поставляется с обширным набором испытаний. Следующее должно пройти и не сообщать о каких -либо предупреждениях или ошибках:
python -m pytest thinc # test suite
python -m mypy thinc # type checks
python -m flake8 thinc # linting
Для просмотра тестового покрытия вы можете запустить python -m pytest thinc --cov=thinc
. Мы стремимся к 100% тестовому покрытию. Это не означает, что мы тщательно пишем тесты для каждой отдельной строки - мы игнорируем блоки, которые не являются актуальными или трудными для проверки, и убедитесь, что тесты выполняют все пути кода.