2018年1月11日 更新

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

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

55,982 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 | 13,131 view
日本が進めるAI画像診断支援②

日本が進めるAI画像診断支援②

大量に集められた医用画像データベースを用いて、いかに効率的に解析可能な教師データを作成していくか、またAIをどのように臨床業務のワークフローに組み入れていくか、がAI画像診断支援の実装に向けた今後の大きな課題です。今回は、AI画像診断支援の実装に向けた具体的な取り組みについて紹介します。
木田智士 | 3,698 view
日本が進めるAI画像診断支援①

日本が進めるAI画像診断支援①

AIによる医用画像診断支援を進めていくためには、大量の医用画像データが必要です。現在、日本の学会や研究所が中心となって、大規模な医用画像データベースの構築が進んでいます。今回は、その大規模データベース構築の現状について紹介します。
木田智士 | 3,763 view
量子アニーリングを駆使して数独を解いてみた

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

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

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

画像処理の一つ,モルフォロジー変換をPython と OpenCVのライブラリを用いて実装し,それを2値画像に対して適用します.

この記事のキーワード

この記事のキュレーター

Takumi Ihara Takumi Ihara