الوثائق
هذا هو إطار عمل لنماذج التسلسل إلى التسلسل (SEQ2SEQ) المنفذة في Pytorch. يحتوي الإطار على مكونات معيارية وقابلة للتمديد لنماذج SEQ2Seq ، والتدريب والاستدلال ، ونقاط التفتيش ، وما إلى ذلك. نحن نقدر أي نوع من التعليقات أو المساهمة.
SEQ2Seq هو مجال متطور سريع مع تقنيات وبنى جديدة يتم نشرها بشكل متكرر. الهدف من هذه المكتبة هو تسهيل تطوير هذه التقنيات والتطبيقات. أثناء تحسين جودة الكود والوثائق باستمرار ، سنركز على العناصر التالية:
تتطلب هذه الحزمة Python 2.7 أو 3.6. نوصي بإنشاء بيئة افتراضية جديدة لهذا المشروع (باستخدام VirtualEnv أو Conda).
pip install numpy (راجع هنا لتثبيت مشكلة Numpy).حاليًا ندعم التثبيت فقط من التعليمات البرمجية المصدر باستخدام setuptools. الخروج من رمز المصدر وقم بتشغيل الأوامر التالية:
pip install -r requirements.txt
python setup.py install
إذا كان لديك بالفعل نسخة من Pytorch مثبتة على نظامك ، فيرجى التحقق من أن حزمة الشعلة النشطة هي على الأقل الإصدار 0.1.11.
# Run script to generate the reverse toy dataset
# The generated data is stored in data/toy_reverse by default
scripts/toy.sh
TRAIN_PATH=data/toy_reverse/train/data.txt
DEV_PATH=data/toy_reverse/dev/data.txt
# Start training
python examples/sample.py --train_path $TRAIN_PATH --dev_path $DEV_PATH
سيستغرق التدريب على 3 دقائق تقريبًا على وحدة المعالجة المركزية وأقل من دقيقة واحدة مع Tesla K80. بمجرد اكتمال التدريب ، سيُطلب منك إدخال تسلسل جديد للترجمة وسيقوم النموذج بطباعة تنبؤه (استخدم CTRL-C لإنهاء). جرب المثال أدناه!
Input: 1 3 5 7 9
Expected output: 9 7 5 3 1 EOS
يتم تنظيم نقاط التفتيش من خلال التجارب والجداول الزمنية كما هو موضح في بنية الملف التالية
experiment_dir
+-- input_vocab
+-- output_vocab
+-- checkpoints
| +-- YYYY_mm_dd_HH_MM_SS
| +-- decoder
| +-- encoder
| +-- model_checkpoint
يحفظ النصي العينة افتراضيًا نقاط التفتيش في مجلد experiment في دليل الجذر. انظر إلى استخدامات رمز العينة لمزيد من الخيارات ، بما في ذلك الاستئناف والتحميل من نقاط التفتيش.
إذا كان لديك أي أسئلة وتقارير الأخطاء وطلبات الميزات ، فيرجى فتح مشكلة على Github. للمناقشات الحية ، يرجى الذهاب إلى ردهة Gitter الخاصة بنا.
نحن نقدر أي نوع من التعليقات أو المساهمة. لا تتردد في المتابعة مع قضايا صغيرة مثل إصلاحات الأخطاء ، وتحسين الوثائق. للمساهمات الرئيسية والميزات الجديدة ، يرجى مناقشة مع المتعاونين في القضايا المقابلة.
نحن نستخدم دورات الإطلاق لمدة 4 أسابيع ، حيث سيتم دفع خلال كل تغييرات إلى فرع develop وأخيراً الاندماج في الفرع master في نهاية كل دورة.
نقوم بإعداد بيئة التطوير باستخدام المتشرد. قم vagrant up مع "Vagrantfile" للبدء.
هناك حاجة إلى الأدوات التالية وتثبيتها في بيئة التطوير افتراضيًا:
يتم ضمان جودة ومحافظة المشروع من خلال الاختبارات الشاملة. نشجع اختبارات وحدة الكتابة واختبارات التكامل عند المساهمة برموز جديدة.
يرجى محليا تشغيل nosetests في دليل الجذر الحزمة لتشغيل اختبارات الوحدة. نحن نستخدم Travisci للمطالبة بطلب السحب أن يجتاز جميع اختبارات الوحدة ليكون مؤهلاً للاندماج. انظر تكوين Travis لمزيد من المعلومات.
نحن نتبع PEP8 لأسلوب الكود. لا سيما نمط docstrings مهم لتوليد الوثائق.
# Python syntax errors or undefined names
flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics
# Style checks
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics