帶註釋的 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 將報告錯誤。