Textgan هو إطار PYTORCH لشبكات العدائية (GANS) التي تستند إلى نماذج توليد النص ، بما في ذلك نماذج توليد النص العام ونماذج توليد نص الفئة. يعمل Textgan كمنصة قياس لدعم الأبحاث حول نماذج توليد النص المستندة إلى GAN. نظرًا لأن TensorFlow يتم تنفيذ معظم نماذج توليد النص المستندة إلى GAN ، يمكن لـ Textgan مساعدة أولئك الذين يعتدون على Pytorch لإدخال حقل توليد النص بشكل أسرع.
إذا وجدت أي خطأ في تنفيذي ، فيرجى إخبارنا! أيضًا ، لا تتردد في المساهمة في هذا المستودع إذا كنت ترغب في إضافة نماذج أخرى.
للتثبيت ، قم بتشغيل pip install -r requirements.txt . في حالة مشاكل CUDA ، استشر دليل Pytorch الرسمي للبدء.
قم بتنزيل الإصدار المستقر و Unsip: http://kheafield.com/code/kenlm.tar.gz
بحاجة إلى زيادة> = 1.42.0 و bjam
sudo apt-get install libboost-all-devbrew install boost; brew install bjamتشغيل داخل دليل Kenlm:
mkdir -p build
cd build
cmake ..
make -j 4 pip install https://github.com/kpu/kenlm/archive/master.zip
لمزيد من المعلومات حول kenlm راجع: https://github.com/kpu/kenlm و http://kheafield.com/code/kenlm/
git clone https://github.com/williamSYSU/TextGAN-PyTorch.git
cd TextGAN-PyTorchImage COCO و EMNLP NEWs و Movie Review و Amazon Review ) من هنا. cd run
python3 run_[model_name].py 0 0 # The first 0 is job_id, the second 0 is gpu_id
# For example
python3 run_seqgan.py 0 0مدرب
لكل نموذج ، يتم تعريف عملية التغير بأكملها في instructor/oracle_data/seqgan_instructor.py . (خذ Seqgan في تجربة البيانات الاصطناعية على سبيل المثال). يتم تعريف بعض الوظائف الأساسية مثل init_model() و optimize() في الفئة الأساسية BasicInstructor في instructor.py . إذا كنت ترغب في إضافة نموذج جديد لتوليد النص المستند إلى GAN ، فيرجى إنشاء مدرب جديد تحت instructor/oracle_data وتحديد عملية التدريب للنموذج.
التصور
استخدم utils/visualization.py لتصور ملف السجل ، بما في ذلك درجات فقدان النماذج وعشرات المقاييس. تخصيص ملفات السجل الخاصة بك في log_file_list ، ليس أكثر من len(color_list) . يجب أن يستبعد اسم ملف السجل .txt .
قطع الأشجار
يستخدم Textgan-Pytorch وحدة logging في Python لتسجيل عملية التشغيل ، مثل خسارة المولد وعشرات متري. للحصول على راحة التصور ، سيكون هناك ملف سجلان نفس السجل المحفوظة في log/log_****_****.txt save/**/log.txt على التوالي. علاوة على ذلك ، فإن الرمز سيوفر تلقائيًا مقرات الحالة للنماذج وزيادة حجم عينات المولد في ./save/**/models و ./save/**/samples samples لكل خطوة سجل ، حيث يعتمد ** على مقاييسك المفرطة.
إشارة الجري
يمكنك بسهولة التحكم في عملية التدريب باستخدام Signal الفصل (يرجى الرجوع إلى utils/helpers.py ) استنادًا إلى ملف القاموس run_signal.txt .
لاستخدام Signal ، ما عليك سوى تحرير الملف المحلي run_signal.txt وتعيين pre_sig على Fasle على سبيل المثال ، سيتوقف البرنامج عن عملية ما قبل التدريب والخطو إلى مرحلة التدريب التالية. من المريح إيقاف التدريب المبكر إذا كنت تعتقد أن التدريب الحالي يكفي.
Automatiaclly حدد GPU
في config.py ، سيقوم البرنامج تلقائيًا بتحديد جهاز GPU مع أقل GPU-Util في nvidia-smi . يتم تمكين هذه الميزة بشكل افتراضي. إذا كنت ترغب في تحديد جهاز GPU يدويًا ، فيرجى إلغاء تحديد ARGS --device في run_[run_model].py وتحديد جهاز GPU باستخدام الأمر.
تشغيل الملف: Run_seqgan.py
المدربون: oracle_data ، real_data
النماذج: مولد ، تمييز
الهيكل (من Seqgan)

تشغيل الملف: Run_Leakgan.py
المدربون: oracle_data ، real_data
النماذج: مولد ، تمييز
الهيكل (من Leakgan)

تشغيل الملف: Run_Maligan.py
المدربون: oracle_data ، real_data
النماذج: مولد ، تمييز
الهيكل (من فهمي)

تشغيل الملف: Run_jsdgan.py
المدربون: oracle_data ، real_data
النماذج: مولد (بدون تمييز)
الهيكل (من فهمي)

تشغيل الملف: Run_relgan.py
المدربون: oracle_data ، real_data
النماذج: مولد ، تمييز
الهيكل (من فهمي)

تشغيل الملف: Run_dpgan.py
المدربون: oracle_data ، real_data
النماذج: مولد ، تمييز
الهيكل (من DPGAN)

تشغيل الملف: Run_dgsan.py
المدربون: oracle_data ، real_data
النماذج: مولد ، تمييز
تشغيل الملف: Run_cot.py
المدربون: oracle_data ، real_data
النماذج: مولد ، تمييز
الهيكل (من سرير)

تشغيل الملف: Run_Sentigan.py
المدربون: oracle_data ، real_data
النماذج: مولد ، تمييز
الهيكل (من سينتيغان)

تشغيل الملف: Run_Catgan.py
المدربون: oracle_data ، real_data
النماذج: مولد ، تمييز
الهيكل (من كاتغان)

MIT Lincense