รหัสสำหรับโพสต์บล็อก The Annotated Transformer:
http://nlp.seas.harvard.edu/annotated-transformer/
ใช้ requirements.txt
เพื่อติดตั้งการพึ่งพาไลบรารีด้วย pip:
pip install -r requirements.txt
Annotated Transformer ถูกสร้างขึ้นโดยใช้ jupytext
สมุดบันทึกทั่วไปก่อให้เกิดปัญหาในการควบคุมแหล่งที่มา - เอาต์พุตของเซลล์จะจบลงในประวัติ repo และความแตกต่างระหว่างการคอมมิตนั้นยากต่อการตรวจสอบ เมื่อใช้ jupytext จะมีสคริปต์หลาม (ไฟล์ .py
) ที่จะซิงค์กับไฟล์สมุดบันทึกโดยอัตโนมัติโดยปลั๊กอิน jupytext
สคริปต์ python ได้รับการคอมมิตประกอบด้วยเนื้อหาเซลล์ทั้งหมดและสามารถใช้เพื่อสร้างไฟล์สมุดบันทึกได้ สคริปต์ Python เป็นไฟล์ต้นฉบับของ Python ปกติ ส่วนมาร์กดาวน์จะรวมไว้โดยใช้แบบแผนความคิดเห็นมาตรฐาน และเอาต์พุตจะไม่ถูกบันทึก ตัวโน้ตบุ๊กจะถือเป็น build artifact และไม่ได้ถูกส่งไปยังที่เก็บ git
ก่อนที่จะใช้ repo นี้ ตรวจสอบให้แน่ใจว่าได้ติดตั้ง 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 repo ของ Transformer ที่ทำหมายเหตุประกอบไว้แล้วจะมีการดำเนินการ git เพื่อตรวจสอบว่าโค้ดเป็นไปตามมาตรฐานการเข้ารหัส PEP8
เพื่อให้ง่ายขึ้น มีเป้าหมายในการสร้าง Makefile
สองเป้าหมายเพื่อรันการจัดรูปแบบโค้ดอัตโนมัติด้วยสีดำและเกล็ด8
อย่าลืมติดตั้งสีดำและเกล็ด8
จากนั้นคุณสามารถเรียกใช้:
make black
(หรือเรียกอีกอย่างว่า black black --line-length 79 the_annotated_transformer.py
) เพื่อจัดรูปแบบโค้ดโดยอัตโนมัติโดยใช้ black และ:
make flake
(หรือเรียก flake8 `flake8 --show-source the_annotated_transformer.py ด้วยตนเอง) เพื่อตรวจสอบการละเมิด PEP8
ขอแนะนำให้รันคำสั่งทั้งสองนี้และแก้ไขข้อผิดพลาด Flake8 ใดๆ ที่เกิดขึ้นเมื่อส่ง PR ไม่เช่นนั้น CI การดำเนินการ GitHub จะรายงานข้อผิดพลาด