牛のイラストを生成してみた
画像を生成できるニューラルネットワークであるGNAなるものが世の中に存在するのは昔から知ってましたが、 そういうものがあるって聞いていただけで、使ったこともないし、原理もよくわからないし・・・でもなんか派手だなぁーって思ってた感じです。 ただ最近、”Lightweight GAN”ってモデルがすごいという話を多方面から聞くんですよね。しかも、コマンドだけで実行できる実装済みのモデルがgitで公開されているという。 これは試してみるしかないと思ったわけです。 そう思ったのが12月上旬でした。そこからなんの画像を学習させるか考えたのですが、まぁブログとか載せるとしたら今年の干支の牛のイラストでも生成すると思ったわけです。 ただ、取り掛かったのが仕事納めをした後だったのであれやこれや工夫する時間はなくて、とりあえず大晦日に出力できた画像をphotoshopできれいにした画像がサムネになっている下の画像になります。
gitで公開されるLightweight GANの実装済みモデルについて
使い方は上のgitのページに書いてありますが、ここでザっと紹介しておくと、 まず、モデルのダウンロードはpipで簡単にできて`pip install lightweight-gan`でインストールできます。 その後はpythonでないかコードを書く必要はなく、lightweight-ganでモデルの学習から画像の生成までを行うことができます。 `lightweight_gan –data <教師画像のフォルダのパス> –image-size 256 –batch-size 16 –num-train-steps 100000` こんな具合です。 そうすると、コンソールに進行状況が逐次出力されるようになり、1000イテレーションごとにチェックポイントとしてモデルと現在の出力画像がサンプルとして一枚の画面に64の画像が保存されます(下の画像は6000イテレーション時のサンプル画像)。
結果あまり上手くいかなかった
- 10000イテレーション学習させたあたりから、ある教師画像のイラストそっくりな画像が大量に生成されるようになった。
- 一度学習を止めて、1000イテレーションづつのチェックポイントから再開したら、教師画像にチェックポイントごとに生成されるサンプル画像が教師画像に混ざってしまい8×8のサンプル画像が生成されるようになってしまった。

モデルの実装をしてみたいと思った
もとから人のコードを利用させてもらうのが苦手というのもありますが、コマンドだけで実行しているとうまくいかないときにやれることが少ないので、勉強のためにも多少コードを書きたいと思いました。 まぁ、どのレベルで実装するかはよくわかりませんが、論文を片手にコードを書いてみたほうが当たり前ですけどその後に役立つ知見は得られますよね。 まぁ、初心者の僕が最初の一歩としてGANを触ってみるにはいいネタでしたね。 来年の干支のトラで再チャレンジしてみようと思います。 まぁ、ことしは上手くいかなかったので人間が手書きにで書くことにしました(使いどころがあったらご自由にお使いください)。