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で顔写真の生成をしてみた。

スクレイピングは、この記事を参考にしました。

やっぱりぺけぺけ女優なので、モザイクがかかっています。