ほぼ週刊ハマりどころメモ

画像認識と自然言語処理を研究する中でハマったところを共有します.ほぼ自分用のメモ.

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 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