Textgan adalah kerangka kerja Pytorch untuk model generasi teks berbasis permusuhan generatif (GANS), termasuk model pembuatan teks umum dan model pembuatan teks kategori. TextGan berfungsi sebagai platform pembandingan untuk mendukung penelitian pada model pembuatan teks berbasis GAN. Karena sebagian besar model pembuatan teks berbasis GAN diimplementasikan oleh TensorFlow, TextGan dapat membantu mereka yang terbiasa dengan Pytorch untuk memasuki bidang pembuatan teks lebih cepat.
Jika Anda menemukan kesalahan dalam implementasi saya, beri tahu saya! Juga, silakan berkontribusi pada repositori ini jika Anda ingin menambahkan model lain.
Untuk menginstal, jalankan pip install -r requirements.txt . Dalam hal masalah CUDA, konsultasikan panduan resmi Pytorch Mulai.
Unduh rilis stabil dan unzip: http://kheafield.com/code/kenlm.tar.gz
Butuh Boost> = 1.42.0 dan bjam
sudo apt-get install libboost-all-devbrew install boost; brew install bjamJalankan di dalam direktori Kenlm:
mkdir -p build
cd build
cmake ..
make -j 4 pip install https://github.com/kpu/kenlm/archive/master.zip
Untuk informasi lebih lanjut tentang Kenlm lihat: https://github.com/kpu/kenlm dan http://kheafield.com/code/kenlm/
git clone https://github.com/williamSYSU/TextGAN-PyTorch.git
cd TextGAN-PyTorchImage COCO , EMNLP NEWs , Movie Review , Amazon Review ) dapat diunduh dari sini. 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 0Pengajar
Untuk setiap model, seluruh proses menjalankan didefinisikan dalam instructor/oracle_data/seqgan_instructor.py . (Ambil SEQGAN dalam percobaan data sintetis misalnya). Beberapa fungsi dasar seperti init_model() dan optimize() didefinisikan dalam kelas dasar BasicInstructor di instructor.py . Jika Anda ingin menambahkan model pembuatan teks berbasis GAN baru, silakan buat instruktur baru di bawah instructor/oracle_data dan tentukan proses pelatihan untuk model.
Visualisasi
Gunakan utils/visualization.py untuk memvisualisasikan file log, termasuk kehilangan model dan skor metrik. Kustom file log Anda di log_file_list , tidak lebih dari len(color_list) . Nama file log harus mengecualikan .txt .
Logging
Textgan-pytorch menggunakan modul logging di Python untuk merekam proses berjalan, seperti kehilangan generator dan skor metrik. Untuk kenyamanan visualisasi, akan ada dua file log yang sama yang disimpan dalam log/log_****_****.txt dan save/**/log.txt masing -masing. Selain itu, kode akan secara otomatis menyimpan dikt status model dan ukuran batch sampel generator di ./save/**/models dan ./save/**/samples per langkah log, di mana ** tergantung pada hiper-parameter Anda.
Sinyal berjalan
Anda dapat dengan mudah mengontrol proses pelatihan dengan Signal kelas (silakan merujuk ke utils/helpers.py ) berdasarkan file kamus run_signal.txt .
Untuk menggunakan Signal , cukup edit file lokal run_signal.txt dan atur pre_sig ke Fasle misalnya, program akan menghentikan proses pra-pelatihan dan melangkah ke fase pelatihan berikutnya. Lebih mudah untuk menghentikan pelatihan lebih awal jika Anda berpikir pelatihan saat ini sudah cukup.
Pilih GPU secara otomatis
Di config.py , program akan secara otomatis memilih perangkat GPU dengan GPU-Util paling sedikit di nvidia-smi . Fitur ini diaktifkan secara default. Jika Anda ingin secara manual memilih perangkat GPU, silakan buka komentar --device arg di run_[run_model].py dan tentukan perangkat GPU dengan perintah.
Jalankan file: run_seqgan.py
Instruktur: oracle_data, real_data
Model: Generator, Diskriminator
Struktur (dari Seqgan)

Jalankan File: run_leakgan.py
Instruktur: oracle_data, real_data
Model: Generator, Diskriminator
Struktur (dari Leakgan)

Jalankan file: run_maligan.py
Instruktur: oracle_data, real_data
Model: Generator, Diskriminator
Struktur (dari pemahaman saya)

Jalankan file: run_jsdgan.py
Instruktur: oracle_data, real_data
Model: Generator (Tidak Ada Diskriminator)
Struktur (dari pemahaman saya)

Jalankan File: run_relgan.py
Instruktur: oracle_data, real_data
Model: Generator, Diskriminator
Struktur (dari pemahaman saya)

Jalankan file: run_dpgan.py
Instruktur: oracle_data, real_data
Model: Generator, Diskriminator
Struktur (dari DPGAN)

Jalankan file: run_dgsan.py
Instruktur: oracle_data, real_data
Model: Generator, Diskriminator
Jalankan File: run_cot.py
Instruktur: oracle_data, real_data
Model: Generator, Diskriminator
Struktur (dari ranjang)

Jalankan file: run_sentigan.py
Instruktur: oracle_data, real_data
Model: Generator, Diskriminator
Struktur (dari Sentigan)

Jalankan File: run_catgan.py
Instruktur: oracle_data, real_data
Model: Generator, Diskriminator
Struktur (dari catgan)

MIT Lincense