نماذج مختلفة ورمز لتحديد التعيينات التي تم تنفيذها في TensorFlow (1.1.0).
لقد اهتمت كثيرا بتوثيق الرمز وشرح ما أفعله في خطوات مختلفة في جميع النماذج ؛ نأمل أن يكون رمز مثال تعليمي لأولئك الذين يتطلعون للبدء مع TensorFlow!
حتى الآن ، نفذ هذا الريبو:
خط الأساس Siamese الأساسي LSTM ، يعتمد بشكل فضفاض على النموذج في مولر وجوناس وأديتيا ثياجاراجان. "البنى المتكررة سيامي لتعلم تشابه الجملة." AAAI (2016).
نموذج Siamese LSTM مع "طبقة مطابقة" إضافية ، كما هو موضح في Liu ، Yang et al. "تعلم الاستدلال اللغوي الطبيعي باستخدام نموذج LSTM ثنائي الاتجاه والإنهاء الداخلي." CORR ABS/1605.09090 (2016).
النموذج المطابق متعدد المنظور الثنائي أو غير المنظور الأكثر أو أقل أو أقل من وانغ ، Zhiguo et al. "المطابقة الثنائية متعددة المنظور لجمل اللغة الطبيعية." CORR ABS/1702.03814 (2017).
العلاقات العامة لإضافة المزيد من الطرز / تحسين أو تصحيح النماذج الموجودة أكثر من موضع ترحيب! يكمن الجزء الأكبر من رمز النموذج في Diplicate_Questions/Models
يتم أخذ الكثير من رمز معالجة البيانات من / مستوحى من Allenai / Deep_QA ، انتقل إلى التحقق منها إذا كنت تحب كيفية تنظيم هذا المشروع!
تم تطوير هذا المشروع وتم اختباره على Python 3.5 (من المحتمل ألا يعمل مع إصدارات أخرى من Python) ، ومتطلبات الحزمة في requirements.txt .
لتثبيت المتطلبات:
pip install -r requirements.txt
لاحظ أنه بعد تثبيت المتطلبات ، يجب عليك تنزيل بيانات NLTK الضرورية عن طريق التشغيل (في Shell الخاص بك):
python -m nltk.downloader punkt
tensorflow أن ملف requirements.txt . إذا كان لديك GPU ، فيجب عليك إلغاء تثبيت TensorFlow CPU وتثبيت إصدار GPU عن طريق التشغيل:
pip uninstall tensorflow
pip install tensorflow-gpu
للبدء ، قم بتشغيل ما يلي لإنشاء الدلائل المساعدة لتخزين البيانات والنماذج المدربة والسجلات:
make aux_dirs
بالإضافة إلى ذلك ، إذا كنت ترغب في استخدام ناقلات القفازات المسبقة ، فتشغيل:
make glove
والتي ستقوم بتنزيل ناقلات القفازات المسبقة إلى data/external/ . استخراج الملفات في نفس الدليل.
لاستخدام بيانات أزواج أسئلة Quora ، قم بتنزيل مجموعة البيانات من Kaggle (قد تتطلب حسابًا). ضع أرشيفات zip التي تم تنزيلها في data/raw/ ، واستخرج الملفات إلى نفس الدليل.
ثم ، قم بالتشغيل:
make quora_data
لتنظيف البيانات ومعالجتها تلقائيًا باستخدام البرامج النصية في scripts/data/quora .
لتدريب نموذج أو تحميل + تنبؤ مع نموذج ، ثم قم بتشغيل البرامج النصية في scripts/run_model/ مع python <script_path> . يمكنك الحصول على وثائق إضافية حول المعلمات التي تأخذها عن طريق تشغيل python <script_path> -h
فيما يلي أمر مثال Run على خط الأساس Siamese Bilstm:
python scripts/run_model/run_siamese.py train --share_encoder_weights --model_name=baseline_siamese --run_id=0
إليك أمر مثال Run for Siamese Bilstm مع طبقة مطابقة:
python scripts/run_model/run_siamese_matching_bilstm.py train --share_encoder_weights --model_name=siamese_matching --run_id=0
فيما يلي أمر مثال على نموذج BIMPM:
python scripts/run_model/run_bimpm.py train --early_stopping_patience=5 --model_name=biMPM --run_id=0
لاحظ أن الإعدادات الافتراضية قد لا تكون مثالية لاستخدامك ، لذلك لا تتردد في قلب المقابض كما تريد.
هل لديك أفكار حول كيفية تحسين هذا الريبو؟ هل لديك طلب ميزة أو تقرير الأخطاء أو التصحيح؟ لا تتردد في فتح مشكلة أو علاقات عامة ، لأنني سعيد بمعالجة المشكلات والنظر في طلبات السحب.
├── LICENSE
├── Makefile <- Makefile with commands like `make data` or `make train`
├── README.md <- The top-level README for developers using this project.
├── data
│ ├── external <- Data from third party sources.
│ ├── interim <- Intermediate data that has been transformed.
│ ├── processed <- The final, canonical data sets for modeling.
│ └── raw <- Original immutable data (e.g. Quora Question Pairs).
|
├── logs <- Logs from training or prediction, including TF model summaries.
│
├── models <- Serialized models.
|
├── requirements.txt <- The requirements file for reproducing the analysis environment
│
├── duplicate_questions<- Module with source code for models and data.
│ ├── data <- Methods and classes for manipulating data.
│ │
│ ├── models <- Methods and classes for training models.
│ │
│ └── util <- Various helper methods and classes for use in models.
│
├── scripts <- Scripts for generating the data
│ ├── data <- Scripts to clean and split data
│ │
│ └── run_model <- Scripts to train and predict with models.
│
└── tests <- Directory with unit tests.