2018年1月11日 更新

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

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

11,845 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 | 3,582 view
等角写像による画像の変換〜Schwarz-Christoffel 変換〜part 2

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

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

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

等角写像の一つであるSchwarz Christoffel 変換を用いて,画像の変換をしてみます. python によるコードも記載しております. 画像はhttps://uk.mathworks.com/help/images/examples/exploring-a-conformal-mapping_ja_JP.html より.
三好 裕之 | 322 view
画像のセグメンテーション - Level set 法の実装 (Chan-Vese) -

画像のセグメンテーション - Level set 法の実装 (Chan-Vese) -

画像処理のセグメンテーションの分野で用いられるLevel set 法を用いて画像のセグメンテーションを行います.
三好 裕之 | 1,835 view
画像の一部を消すInpainting という技術とその実装 (python)

画像の一部を消すInpainting という技術とその実装 (python)

Python + OpenCVにより,画像の修復の技術,「Inpainting 」の実装を行います.
三好 裕之 | 3,203 view

この記事のキーワード

この記事のキュレーター

Takumi Ihara Takumi Ihara