PyTorchとMNISTをつかって、DCGANで手書き数字を生成してみた。
前回のつづき。
GANでは、あまりよい結果が得られなかったので、DCGANの論文を読んで、実装してみた。
Deep Convolutional Networkを GANに使うにあたって、以下の改良点が提案されていた。
- すべてのプーリングレイヤを strided convolutions(discriminator)と fractional-stirided convolutions(generator)に変更する。
- generator と discriminator に batchnormを使う。
- 全結合隠れ層を取り除く。
- ReLU 活性関数を generatorで使う。ただし、output層は tanhを使う。
- LeakyReLU活性関数をdiscriminatorのすべての層で使う。
もとい!
PyTorchのチュートリアルに DCGANの実装コードが公開されているので、それを参考に実装する。
結果
GANよりも、数字がくっきり浮き出た!
結果その2
ぺけぺけ女優10000人の顔写真をDMMからスクレイピングして収集し、それを題材にDCGANで顔写真の生成をしてみた。
スクレイピングは、この記事を参考にしました。
やっぱりぺけぺけ女優なので、モザイクがかかっています。