O Textgan é uma estrutura Pytorch para modelos generativos de geração de textos baseados em redes adversárias (GANS), incluindo modelos gerais de geração de texto e modelos de geração de texto de categoria. O Textgan atua como uma plataforma de benchmarking para apoiar pesquisas sobre modelos de geração de texto baseados em GaN. Como a maioria dos modelos de geração de texto baseada em GaN é implementada pelo TensorFlow, o TextGan pode ajudar aqueles que se acostumam a Pytorch a entrar no campo de geração de texto mais rapidamente.
Se você encontrar algum erro na minha implementação, entre em contato! Além disso, sinta -se à vontade para contribuir com este repositório se você deseja adicionar outros modelos.
Para instalar, execute pip install -r requirements.txt . No caso de problemas de CUDA, consulte o guia oficial do Pytorch.
Faça o download do lançamento estável e unzip: http://kheafield.com/code/kenlm.tar.gz
Precisa aumentar> = 1.42.0 e BJAM
sudo apt-get install libboost-all-devbrew install boost; brew install bjamExecute no diretório Kenlm:
mkdir -p build
cd build
cmake ..
make -j 4 pip install https://github.com/kpu/kenlm/archive/master.zip
Para mais informações sobre Kenlm, consulte: https://github.com/kpu/kenlm e http://kheafield.com/code/kenlm/
git clone https://github.com/williamSYSU/TextGAN-PyTorch.git
cd TextGAN-PyTorchImage COCO , EMNLP NEWs , Movie Review , Amazon Review ) podem ser baixados a partir daqui. 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 0Instrutor
Para cada modelo, todo o processo de execução é definido no instructor/oracle_data/seqgan_instructor.py . (Tome Seqgan no experimento de dados sintéticos, por exemplo). Algumas funções básicas como init_model() e optimize() são definidas na classe Base BasicInstructor no instructor.py . Se você deseja adicionar um novo modelo de geração de texto baseado em GaN, crie um novo instrutor sob instructor/oracle_data e defina o processo de treinamento para o modelo.
Visualização
Use utils/visualization.py para visualizar o arquivo de log, incluindo as pontuações de perda de modelo e métricas. Personalize seus arquivos de log em log_file_list , não mais que len(color_list) . O nome do arquivo de log deve excluir .txt .
Log
O TextGan-Pytorch usa o módulo logging no Python para registrar o processo em execução, como as pontuações de perda e métricas do gerador. Para a conveniência da visualização, haveria dois mesmos arquivos de log salvos no log/log_****_****.txt e save/**/log.txt , respectivamente. Além disso, o código salvaria automaticamente o dito de estado dos modelos e um tamanho em lote de amostras do gerador em ./save/**/models e ./save/**/samples por etapa do log, onde ** depende dos seus hiper-parâmetros.
Sinal de execução
Você pode controlar facilmente o processo de treinamento com o Signal da classe (consulte utils/helpers.py ) com base no arquivo de dicionário run_signal.txt .
Para usar o Signal , basta editar o arquivo local run_signal.txt e definir pre_sig como Fasle , por exemplo, o programa interromperá o processo de pré-treinamento e entrará na próxima fase de treinamento. É conveniente interromper cedo o treinamento se você acha que o treinamento atual é suficiente.
Selecione automatiaclly GPU
Em config.py , o programa selecionaria automaticamente um dispositivo GPU com o menor GPU-Util no nvidia-smi . Este recurso é ativado por padrão. Se você deseja selecionar manualmente um dispositivo GPU, descompacte o --device args em run_[run_model].py e especifique um dispositivo GPU com comando.
Executar arquivo: run_seqgan.py
Instrutores: oracle_data, real_data
Modelos: gerador, discriminador
Estrutura (de Seqgan)

Executar arquivo: run_leakgan.py
Instrutores: oracle_data, real_data
Modelos: gerador, discriminador
Estrutura (de Leakgan)

Executar arquivo: run_maligan.py
Instrutores: oracle_data, real_data
Modelos: gerador, discriminador
Estrutura (do meu entendimento)

Executar arquivo: run_jsdgan.py
Instrutores: oracle_data, real_data
Modelos: gerador (sem discriminador)
Estrutura (do meu entendimento)

Executar arquivo: run_relgan.py
Instrutores: oracle_data, real_data
Modelos: gerador, discriminador
Estrutura (do meu entendimento)

Executar arquivo: run_dpgan.py
Instrutores: oracle_data, real_data
Modelos: gerador, discriminador
Estrutura (de Dpgan)

Executar arquivo: run_dgsan.py
Instrutores: oracle_data, real_data
Modelos: gerador, discriminador
Executar arquivo: run_cot.py
Instrutores: oracle_data, real_data
Modelos: gerador, discriminador
Estrutura (do COT)

Executar arquivo: run_sentigan.py
Instrutores: oracle_data, real_data
Modelos: gerador, discriminador
Estrutura (de Sentigan)

Executar arquivo: run_catgan.py
Instrutores: oracle_data, real_data
Modelos: gerador, discriminador
Estrutura (de Catgan)

MIT Lincense