带注释的 Transformer 博客文章的代码:
http://nlp.seas.harvard.edu/annotated-transformer/
使用requirements.txt
通过pip安装库依赖项:
pip install -r requirements.txt
带注释的转换器是使用 jupytext 创建的。
常规笔记本会给源代码控制带来问题 - 单元输出最终会出现在存储库历史记录中,并且很难检查提交之间的差异。使用 jupytext,有一个 python 脚本( .py
文件),通过 jupytext 插件自动与笔记本文件保持同步。
提交的Python脚本包含所有单元格内容,可用于生成笔记本文件。 python 脚本是一个常规的 python 源文件,使用标准注释约定包含 markdown 部分,并且不保存输出。笔记本本身被视为构建工件,不会提交到 git 存储库。
在使用此存储库之前,请确保按照此处的安装说明安装了 jupytext。
要使用 markdown 源生成.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 命令使用jupyter nbconvert --to html the_annotated_transformer.ipynb
生成 html
为了保持代码格式干净,带注释的转换器 git 存储库有一个 git 操作来检查代码是否符合 PEP8 编码标准。
为了使这更容易,有两个Makefile
构建目标可以使用 black 和 flake8 运行自动代码格式化。
请务必安装 black 和 flake8。
然后您可以运行:
make black
(或者手动调用 black black --line-length 79 the_annotated_transformer.py
)以使用 black 和自动格式化代码:
make flake
(或手动调用 flake8 `flake8 --show-source the_annotated_transformer.py)来检查 PEP8 违规情况。
建议在提交 PR 时运行这两个命令并修复出现的 flake8 错误,否则 github actions CI 将报告错误。