TextGan是基於生成對抗網絡(GAN)的文本生成模型的Pytorch框架,包括一般文本生成模型和類別文本生成模型。 TextGan是一個基準平台,以支持基於GAN的文本生成模型的研究。由於大多數基於GAN的文本生成模型都是由TensorFlow實現的,因此TextGan可以幫助那些習慣於Pytorch更快地輸入文本生成字段的人。
如果您在實施中發現任何錯誤,請告訴我!另外,如果您想添加其他型號,請隨時為此存儲庫做出貢獻。
要安裝,請運行pip install -r requirements.txt 。如果出現CUDA問題,請諮詢官方Pytorch入門指南。
下載穩定版本和UNZIP:http://kheaffield.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://kheaffield.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()之類的一些基本功能是在instructor.py中的基類BasicInstructor中定義的。如果要添加新的基於GAN的文本生成模型,請在instructor/oracle_data下創建新的講師,並為模型定義培訓過程。
可視化
使用utils/visualization.py可視化日誌文件,包括模型丟失和指標得分。在log_file_list中自定義日誌文件,不超過len(color_list) 。日誌文件名應排除.txt 。
記錄
TextGan-Pytorch使用Python中的logging模塊來記錄運行過程,例如發電機的損失和度量分數。為了方便可視化,將分別保存兩個相同的日誌文件log/log_****_****.txt和save/**/log.txt 。此外,該代碼將自動保存模型的狀態和在./save/**/models和./save/models and ./save/**/samples中的批處理大小,每個日誌步驟,其中**取決於您的hyper-parameters。
運行信號
您可以根據字典文件run_signal.txt輕鬆地使用類Signal (請參閱utils/helpers.py )來控制訓練過程。
對於使用Signal ,只需編輯本地文件run_signal.txt ,然後將pre_sig設置為Fasle ,該程序將停止訓練過程並逐步進入下一個訓練階段。如果您認為當前的培訓足夠,則很方便地停止培訓。
自動選擇GPU
在config.py中,該程序將自動在nvidia-smi中選擇具有最小GPU-Util的GPU設備。默認情況下啟用了此功能。如果要手動選擇GPU設備,請在run_[run_model].py中取消點擊--device args,並用命令指定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
模型:生成器,歧視器
結構(來自COT)

運行文件:run_sentigan.py
講師:oracle_data,real_data
模型:生成器,歧視器
結構(來自Sentigan)

運行文件:run_catgan.py
講師:oracle_data,real_data
模型:生成器,歧視器
結構(來自Catgan)

麻省理工學院Lincense