SeqGANのソースコードを動かしてみる[GAN]
テキストや音楽を自動生成可能な手法として, SeqGANがある. 本記事では, テキストの自動生成を目的として, GitHubに公開されるコードをとりあえず動かしてみる.
本記事では原理に関する説明は行わない. 気になる方は下記のペーパーを参考にしてください.
[1609.05473] SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient
早速手順に入る.
SeqGAN用のコンテナをnvidia-docker2で作成.
$ docker run -it --runtime=nvidia --name "seqGAN" nvidia/cuda:8.0-cudnn5-devel-ubuntu16.04 /bin/bashコンテナに入り, 標準搭載されていなかったパッケージを入れる.
# apt update# apt install git# apt install unzipAnacondaに必要パッケージのインストール
# apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev libpng-devpyenvのインストール
# cd ~# mkdir git# cd git# git clone git://github.com/yyuu/pyenv.git ~/.pyenv# git clone https://github.com/yyuu/pyenv-pip-rehash.git ~/.pyenv/plugins/pyenv-pip-rehash# echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc# echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc# echo 'eval "$(pyenv init -)"' >> ~/.bashrc# source ~/.bashrcAnaconda(Python3系)のバージョンを確認
root@xxxx:~/git# pyenv install -l | grep anaconda3anaconda3-4.1.1anaconda3-4.2.0anaconda3-4.3.0anaconda3-4.3.1anaconda3-4.4.0anaconda3-5.0.0anaconda3-5.0.1anaconda3-5.1.0anaconda3-5.2.0anaconda3-5.3.0最新のanaconda3-5.3.0をインストールし, デフォルトとして設定.
# pyenv install anaconda3-5.3.0# pyenv global anaconda3-5.3.0# echo 'export PATH="$PYENV_ROOT/versions/anaconda3-5.3.0/bin:$PATH"' >> ~/.bashrc# source ~/.bashrcPythonの環境を確認
# python --versionPython 3.7.0 (default, Jun 28 2018, 13:15:42)pytorchとtorchvisionをインストール.
# conda install pytorch torchvision cuda80 -c pytorchSeqGANのソースコードを
https://github.com/X-czh/SeqGAN-PyTorch
から落としてくる.
# git clone https://github.com/X-czh/SeqGAN-PyTorch.gitリポジトリの中に入り, main.pyを実行すれば学習が始まる
# python main.py