SeqGANのソースコードを動かしてみる[GAN]

7月 27, 2020

テキストや音楽を自動生成可能な手法として, 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 unzip

Anacondaに必要パッケージのインストール

# apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev libpng-dev

pyenvのインストール

# 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 ~/.bashrc

Anaconda(Python3系)のバージョンを確認

root@xxxx:~/git# pyenv install -l | grep anaconda3
anaconda3-4.1.1
anaconda3-4.2.0
anaconda3-4.3.0
anaconda3-4.3.1
anaconda3-4.4.0
anaconda3-5.0.0
anaconda3-5.0.1
anaconda3-5.1.0
anaconda3-5.2.0
anaconda3-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 ~/.bashrc

Pythonの環境を確認

# python --version
Python 3.7.0 (default, Jun 28 2018, 13:15:42)
[GCC 7.2.0]

pytorchとtorchvisionをインストール.

# conda install pytorch torchvision cuda80 -c pytorch

SeqGANのソースコード

https://github.com/X-czh/SeqGAN-PyTorch

から落としてくる.

# git clone https://github.com/X-czh/SeqGAN-PyTorch.git

リポジトリの中に入り, main.pyを実行すれば学習が始まる

# python main.py

GAN

Posted by vastee