2018年1月11日 更新

Python + tensorflow でGANを試してみた.

今回兼ねてからやってみたかったGANを触ってみました。実際に画像が生成されていく様は楽しかったです。

14,097 view お気に入り 1

今回兼ねてからやってみたかったGANを触ってみました。 とは言っても、githubにあったコードを実行するだけですが、実際に画像が生成されていく様は楽しかったです。

GANとは

GANは敵対的生成ネットワークGenerative Adversarial Networksの略です。

ざっくりやっていることを説明して行きます。
generatorとdiscriminatorというものがあり、generatorは与えられたデータと同じようなものを生成しようとし、discriminatorはgeneratorによって作られたデータが本物かどうかを判定します。
これを繰り返すうちに与えられたデータそっくりのものができます。
しかもこれは与えられたデータの一部を切りはりしているわけではないのです。
非常に面白くこれからに期待ができます。

詳しい解説はこちらをみてください。

実際にやってみた

では、実際に試してみましょう。
このリンクに書いてある通りにやれば問題ないですが、一応手順を書きます。

クローンかダウンロードをして、その後

cd DCGAN-tensorflow-master/

そのディレクトリに入り

python download.py mnist celebA

でmnistとcelebAのデータ両方をダウンロードするか

python download.py mnist

のように片方だけダウンロードするかします。

その後はtrainingをさせます。

python main.py –dataset mnist –input_height=28 –output_height=28 –train
python main.py –dataset celebA –input_height=108 –train –crop

いい結果が出るまでにはかなり時間がかかります。
Macbook proでそれっぽいのが5,6時間、割といいのが12時間ぐらいかかったような記憶があります。

これでどんどん画像ができてきます。

このgithubのコードで自前の画像を学習させられるそうですがエラーがたくさん出て私はできませんでした。
画像のサイズに問題があったりしたと思います。

MNISTの画像生成です。

 (4450)

始まったばかりの状態です。
まだなんなのかわかりません。
 (4451)

しばらくするとなんか出てきた感があります。
 (4452)

なんか3と5っぽいものはちらほら
 (4453)

だんだん鮮明になってきた
 (4454)

数字だー!!
 (4455)

それからしばらく続けた結果

なんか1多くない?
多分過学習です。
やっぱりAIも0-9の中だと単純な棒一本の1が生成しやすいのでしょうね。

次に、celebAです。
セレブの画像を生成していきます。
アメリカのセレブなのでお金持ちじゃなくて有名人の意味だと思います。

 (4457)

なんかボヤけたものがいっぱい
 (4458)

ちょっと見えてきた
 (4459)

顔っぽくなってきた
31 件

関連する記事 こんな記事も人気です♪

python+tensorflowでatariのponをDQN(深層強化学習)してみた。

python+tensorflowでatariのponをDQN(深層強化学習)してみた。

今回兼ねてからやってみたかったDQN(深層強化学習)を触ってみました。 とは言っても、githubにあったコードを実行するだけですが、実際に学習していく様は楽しかったです。
Takumi Ihara | 4,406 view
量子アニーリングを駆使して数独を解いてみた

量子アニーリングを駆使して数独を解いてみた

先日,量子アニーリングの勉強会に参加して来ました.そのアウトプットとして,今回,数独ソルバーを作ってみます.
井上 大輝 | 148 view
Morphology (モルフォロジー) 変換の実装 ~ Python + OpenCV ~

Morphology (モルフォロジー) 変換の実装 ~ Python + OpenCV ~

画像処理の一つ,モルフォロジー変換をPython と OpenCVのライブラリを用いて実装し,それを2値画像に対して適用します.
三好 裕之 | 352 view
等角写像による画像の変換〜Schwarz-Christoffel 変換〜part 2

等角写像による画像の変換〜Schwarz-Christoffel 変換〜part 2

前回の記事「等角写像による画像の変換〜Schwarz-Christoffel 変換〜part 1」の続きです. 実際に実装をして,写像を確かめてみます.
三好 裕之 | 640 view
等角写像による画像の変換〜Schwarz-Christoffel 変換〜 part1

等角写像による画像の変換〜Schwarz-Christoffel 変換〜 part1

等角写像の一つであるSchwarz Christoffel 変換を用いて,画像の変換をしてみます. python によるコードも記載しております. 画像はhttps://uk.mathworks.com/help/images/examples/exploring-a-conformal-mapping_ja_JP.html より.
三好 裕之 | 531 view

この記事のキーワード

この記事のキュレーター

Takumi Ihara Takumi Ihara