Код для записи в блоге The Annotated Transformer:
http://nlp.seas.harvard.edu/annotated-transformer/
Используйте requirements.txt
для установки зависимостей библиотеки с помощью pip:
pip install -r requirements.txt
Аннотированный трансформатор создается с использованием jupytext.
Обычные блокноты создают проблемы для контроля версий: выходные данные ячеек попадают в историю репозитория, а различия между коммитами трудно проверить. При использовании jupytext существует скрипт Python (файл .py
), который автоматически синхронизируется с файлом записной книжки с помощью плагина jupytext.
Сценарий Python commit содержит все содержимое ячейки и может использоваться для создания файла записной книжки. Сценарий Python представляет собой обычный исходный файл Python, разделы уценки включаются с использованием стандартного соглашения о комментариях, а выходные данные не сохраняются. Сам блокнот рассматривается как артефакт сборки и не сохраняется в репозитории git.
Прежде чем использовать этот репозиторий, убедитесь, что jupytext установлен, следуя инструкциям по установке здесь.
Чтобы создать файл блокнота .ipynb
с использованием источника уценки, запустите (под капотом цель сборки notebook
просто запускает jupytext --to ipynb the_annotated_transformer.py
):
make notebook
Чтобы создать html-версию блокнота, запустите:
make html
make html
— это просто ярлык для создания блокнота с помощью jupytext --to ipynb the_annotated_transformer.py
с последующим использованием команды jupyter nbconvert для создания html с помощью jupyter nbconvert --to html the_annotated_transformer.ipynb
Чтобы сохранить чистоту форматирования кода, в аннотированном репозитории преобразователя git есть действие git, проверяющее соответствие кода стандартам кодирования PEP8.
Чтобы упростить эту задачу, существуют две цели сборки Makefile
для запуска автоматического форматирования кода с помощью black и flake8.
Обязательно установите black and flake8.
Затем вы можете запустить:
make black
(или, альтернативно, вручную вызовите black black --line-length 79 the_annotated_transformer.py
) для автоматического форматирования кода с использованием черного цвета и:
make flake
(или вручную вызовите flake8 `flake8 --show-source the_annotated_transformer.py), чтобы проверить наличие нарушений PEP8.
Рекомендуется запускать эти две команды и исправлять любые возникающие ошибки flake8 при отправке PR, в противном случае CI действий github сообщит об ошибке.