你的TextGAN调出来了么?来看看人在怎么调的

2019 年 6 月 6 日 专知

【导读】众所周知,GAN的模型,特别难调出效果,更众所周知的是,GAN用来做文本生成,更难调出效果,简直地狱难度。然而,为了利用GAN的丰富特性,小伙伴们明知山有虎,偏向虎山行,可歌可泣。近日,来自双鸭山大学(中山大学)的WilliamLam大神有感于此,开源了自己实现的多个TextGAN, 包括:SeqGAN, LeakGAN等。你的TextGAN调出来了么?来看看人在怎么调的。


Github地址: 

https://github.com/williamSYSU/TextGAN-PyTorch

所需数据集:

https://drive.google.com/drive/folders/1XvT3GqbK1wh3XhTgqBLWUtH_mLzGnKZP?usp=sharing

Github作者:

WilliamLam(梁智威)


WilliamLam同学不光开源了具体的GANs模型的代码实现,更是总结出了一套Text GAN的实现框架,来帮助大家快速完成Text GAN的应用。


【项目要求】

  • PyTorch >= 1.0.0

  • Python 3.6

  • Numpy 1.14.5

  • CUDA 7.5+ (For GPU)

  • nltk 3.4

  • tqdm 4.32.1


【使用方法】

  • 下载代码库

git clone https://github.com/williamSYSU/TextGAN-PyTorch.git
cd TextGAN-PyTorch
  • 测试所需的 Image COCO 和 EMNLP news 数据集,上面的数据集处下载

  • 使用 SeqGAN

cd run
python3 run_seqgan.py 0 0
    P.S. 参数释义:第一个 0 是作业id, 第二个0是GPU id
  • 使用LeakGAN

cd run
python3 run_leakgan.py 0 0
  • 使用 RelGAN

cd run
python3 run_relgan.py 0 0


【目录结构】

整个TextGAN库的目录结构如下:

- instructor

- metrics

- models

- run

- utils

- config.py

- main.py

- run_signal.txt


【特性】

关于扩展:

对于每个模型,他们的运行过程,都定义在 instructor/oracle_data 文件夹下面。一些基本的函数,比如init_model() 和 optimization()则在instructor.py的基类basictrainer中定义。如果你想添加一个新的基于gan的文本生成模型,请在instructor/oracle_data下创建一个新的文件,并为该模型定义训练过程。


关于可视化:

使用utils/visualization.py 可以可视化log,包括模型loss,metrics等。你可以在log_file_list 自定义你的log。


关于日志:

TextGAN-PyTorch使用Python中的日志模块记录运行过程,比如生成器的Loss和metrics。为了便于可视化,将两个相同的日志文件分别保存在log/log_**** **** *.txt和save/** */log.txt中。此外,该代码将自动将模型的状态dict和生成器样本的批大小保存在./save/**/models和./save/**/samples中,其中**取决于超参数。


关于运行信号:

你可以使用基于字典文件run_signal.txt的类信号(请参阅utils/helper .py)轻松控制训练过程。要使用该信号,只需编辑本地文件run_signal.txt并将pre_sig设置为Fasle,例如,程序将停止预培训过程并进入下一个培训阶段。如果你认为目前的培训已经足够,那么提前停止培训是很方便的。


关于GPU:

在config.py中,程序会根据nvidia-smi的返回结果,自动挑选GPU-Utils最少的GPU, 默认会开启此功能,如果你想手动选在GPU设备,请取消注释run_XXX.py 中的device args,然后用命令指定设备。


更多信息,请访问该Github库

https://github.com/williamSYSU/TextGAN-PyTorch


-END-

专 · 知

专知,专业可信的人工智能知识分发,让认知协作更快更好!欢迎登录www.zhuanzhi.ai,注册登录专知,获取更多AI知识资料!

欢迎微信扫一扫加入专知人工智能知识星球群,获取最新AI专业干货知识教程视频资料和与专家交流咨询

请加专知小助手微信(扫一扫如下二维码添加),加入专知人工智能主题群,咨询技术商务合作~

专知《深度学习:算法到实战》课程全部完成!550+位同学在学习,现在报名,限时优惠!网易云课堂人工智能畅销榜首位!

点击“阅读原文”,了解报名专知《深度学习:算法到实战》课程

登录查看更多
83

相关内容

GAN:生成性对抗网,深度学习模型的一种,在神经网络模型中引入竞争机制,非常流行。
【阿尔托大学】图神经网络,Graph Neural Networks,附60页ppt
专知会员服务
178+阅读 · 2020年4月26日
一网打尽!100+深度学习模型TensorFlow与Pytorch代码实现集合
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
160+阅读 · 2019年10月28日
Diganta Misra等人提出新激活函数Mish,在一些任务上超越RuLU
专知会员服务
14+阅读 · 2019年10月15日
机器学习相关资源(框架、库、软件)大列表
专知会员服务
37+阅读 · 2019年10月9日
那些酷炫的深度学习网络图怎么画出来的?
极市平台
28+阅读 · 2019年6月16日
Github 项目推荐 | PyTorch 实现的 GAN 文本生成框架
AI研习社
33+阅读 · 2019年6月10日
GitHub 热门:别再用 print 输出来调试代码了
Python开发者
27+阅读 · 2019年4月24日
一起来看看词性标注
AINLP
8+阅读 · 2019年4月9日
怎么画高大上的神经网络结构?试试这个!
请快点粘贴复制,这是一份好用的TensorFlow代码集
推荐一些适合小白练手的Python项目
数据挖掘入门与实战
6+阅读 · 2018年5月17日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
Arxiv
8+阅读 · 2018年1月19日
VIP会员
相关资讯
那些酷炫的深度学习网络图怎么画出来的?
极市平台
28+阅读 · 2019年6月16日
Github 项目推荐 | PyTorch 实现的 GAN 文本生成框架
AI研习社
33+阅读 · 2019年6月10日
GitHub 热门:别再用 print 输出来调试代码了
Python开发者
27+阅读 · 2019年4月24日
一起来看看词性标注
AINLP
8+阅读 · 2019年4月9日
怎么画高大上的神经网络结构?试试这个!
请快点粘贴复制,这是一份好用的TensorFlow代码集
推荐一些适合小白练手的Python项目
数据挖掘入门与实战
6+阅读 · 2018年5月17日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
Top
微信扫码咨询专知VIP会员