Textgan es un marco de Pytorch para modelos generativos de generación de texto basados en redes adversas (GANS), incluidos modelos generales de generación de texto y modelos de generación de texto de categoría. Textgan sirve como plataforma de evaluación comparativa para apoyar la investigación sobre modelos de generación de texto basados en GaN. Dado que la mayoría de los modelos de generación de texto basados en GaN son implementados por TensorFlow, Textgan puede ayudar a aquellos que se acostumbran a Pytorch a ingresar el campo de generación de texto más rápido.
Si encuentra algún error en mi implementación, ¡hágamelo saber! Además, no dude en contribuir a este repositorio si desea agregar otros modelos.
Para instalar, ejecute pip install -r requirements.txt . En el caso de los problemas de CUDA, consulte la guía oficial de Pytorch Get Start.
Descargar el lanzamiento estable y unzip: http://kheafield.com/code/kenlm.tar.gz
Necesita impulso> = 1.42.0 y bjam
sudo apt-get install libboost-all-devbrew install boost; brew install bjamEjecutar dentro del directorio Kenlm:
mkdir -p build
cd build
cmake ..
make -j 4 pip install https://github.com/kpu/kenlm/archive/master.zip
Para obtener más información sobre Kenlm, consulte: https://github.com/kpu/kenlm y http://kheafield.com/code/kenlm/
git clone https://github.com/williamSYSU/TextGAN-PyTorch.git
cd TextGAN-PyTorchImage COCO , EMNLP NEWs , Movie Review , Amazon Review ) se pueden descargar desde aquí. 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 0Instructor
Para cada modelo, todo el proceso de ejecución se define en instructor/oracle_data/seqgan_instructor.py . (Tome Seqgan en el experimento de datos sintéticos, por ejemplo). Algunas funciones básicas como init_model() y optimize() se definen en la clase base BasicInstructor en instructor.py . Si desea agregar un nuevo modelo de generación de texto basado en GaN, cree un nuevo instructor en instructor/oracle_data y defina el proceso de capacitación para el modelo.
Visualización
Use utils/visualization.py para visualizar el archivo de registro, incluidos los puntajes de pérdida de modelos y métricas. Personalizó sus archivos de registro en log_file_list , no más que len(color_list) . El nombre de archivo de registro debe excluir .txt .
Explotación florestal
Textgan-Pytorch usa el módulo logging en Python para registrar el proceso de ejecución, como la pérdida del generador y las puntuaciones métricas. Para la conveniencia de la visualización, habría dos el mismo archivo de registro guardado en log/log_****_****.txt y save/**/log.txt respectivamente. Además, el código guardaría automáticamente el estado de estado de modelos y un tamaño de lote de muestras de generador en ./save/**/models y ./save/**/samples por paso de registro, donde ** depende de sus hiperparametros.
Señal de ejecución
Puede controlar fácilmente el proceso de capacitación con la Signal de clase (consulte utils/helpers.py ) basado en el archivo de diccionario run_signal.txt .
Para usar la Signal , simplemente edite el archivo local run_signal.txt y establezca pre_sig en Fasle , por ejemplo, el programa dejará de pre-entrenamiento y pasará a la siguiente fase de entrenamiento. Es conveniente detener temprano el entrenamiento si cree que la capacitación actual es suficiente.
AutomatiAcly Seleccione GPU
En config.py , el programa seleccionaría automáticamente un dispositivo GPU con la menor GPU-Util en nvidia-smi . Esta función está habilitada de forma predeterminada. Si desea seleccionar manualmente un dispositivo GPU, desenchufe el --device args en run_[run_model].py y especifique un dispositivo GPU con el comando.
Ejecutar archivo: run_seqgan.py
Instructores: oracle_data, real_data
Modelos: generador, discriminador
Estructura (de Seqgan)

Ejecutar archivo: run_leakgan.py
Instructores: oracle_data, real_data
Modelos: generador, discriminador
Estructura (de Leakgan)

Ejecutar archivo: run_maligan.py
Instructores: oracle_data, real_data
Modelos: generador, discriminador
Estructura (de mi entendimiento)

Ejecutar archivo: run_jsdgan.py
Instructores: oracle_data, real_data
Modelos: Generador (sin discriminador)
Estructura (de mi entendimiento)

Ejecutar archivo: run_relgan.py
Instructores: oracle_data, real_data
Modelos: generador, discriminador
Estructura (de mi entendimiento)

Ejecutar archivo: run_dpgan.py
Instructores: oracle_data, real_data
Modelos: generador, discriminador
Estructura (de DPGan)

Ejecutar archivo: run_dgsan.py
Instructores: oracle_data, real_data
Modelos: generador, discriminador
Ejecutar archivo: run_cot.py
Instructores: oracle_data, real_data
Modelos: generador, discriminador
Estructura (de cuna)

Ejecutar archivo: run_sentigan.py
Instructores: oracle_data, real_data
Modelos: generador, discriminador
Estructura (de Sentigan)

Ejecutar archivo: run_catgan.py
Instructores: oracle_data, real_data
Modelos: generador, discriminador
Estructura (de Catgan)

MIT Lincense