الكود الخاص بمنشور مدونة The Annotated Transformer:
http://nlp.seas.harvard.edu/annotated-transformer/
استخدم requirements.txt
لتثبيت تبعيات المكتبة باستخدام النقطة:
pip install -r requirements.txt
يتم إنشاء المحول المشروح باستخدام jupytext.
تطرح دفاتر الملاحظات العادية مشكلات للتحكم في المصدر - حيث تنتهي مخرجات الخلية في سجل الريبو ومن الصعب فحص الاختلافات بين عمليات الالتزام. باستخدام jupytext، يوجد برنامج نصي python (ملف .py
) يتم الاحتفاظ به تلقائيًا متزامنًا مع ملف دفتر الملاحظات بواسطة البرنامج المساعد jupytext.
يحتوي برنامج python النصي الملتزم على كل محتوى الخلية ويمكن استخدامه لإنشاء ملف دفتر الملاحظات. يعد برنامج 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 repo على إجراء git للتحقق من توافق التعليمات البرمجية مع معايير الترميز PEP8.
لتسهيل ذلك، هناك هدفان لبناء Makefile
لتشغيل التنسيق التلقائي للتعليمات البرمجية باللون الأسود وflake8.
تأكد من تثبيت الأسود والتقشر8.
يمكنك بعد ذلك تشغيل:
make black
(أو بدلاً من ذلك، اتصل يدويًا black --line-length 79 the_annotated_transformer.py
) لتنسيق التعليمات البرمجية تلقائيًا باستخدام الأسود و:
make flake
(أو اتصل يدويًا بـflake8 `flake8 --show-source the_annotated_transformer.py) للتحقق من انتهاكات PEP8.
يوصى بتشغيل هذين الأمرين وإصلاح أي أخطاء في flake8 تظهر عند إرسال العلاقات العامة، وإلا فإن CI الخاصة بإجراءات github ستبلغ عن خطأ.