質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

417閲覧

KerasによるDCGANの実装に関して

redp

総合スコア49

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

2クリップ

投稿2018/01/05 10:02

編集2018/01/05 11:50

###実現したいこと
現在、アニメ顔のDCGANによる生成を試みているのですが、ノイズが入っていて他の方が行っているような結果のようにはっきりとした顔画像が生成されないため、はっきりと顔とわかるような画像を生成できるようにしたい。

###該当のソースコード
下記に示すコードがGeneratorとDiscriminatorのソースコードです。ActivationがELUとLeakyReluなのは私のにわか知識をもとに入れたものです。

また、GeneratorにはBatchNorm、DiscriminatorにはInstanceNormをいれています。DiscriminatorにBatchNormではなくInstanceNormをいれているのは学習させる段階で本物の画像とGeneratorによって生成された画像を同バッチに入れて学習させているためです。
バッチサイズはグラボがギリギリ耐えられた49です。

Python

1def __makeGenerator(self): 2 print('create generator') 3 model = Sequential() 4 model.add(Dense(1024 * 4 * 4, input_shape=(100,))) 5 model.add(BatchNormalization()) 6 model.add(ELU()) 7 model.add(Reshape((4, 4, 1024))) 8 model.add(Conv2DTranspose(512, (5, 5), padding='same', strides=(2, 2))) 9 model.add(BatchNormalization()) 10 model.add(ELU()) 11 model.add(Conv2DTranspose(256, (5, 5), padding='same', strides=(2, 2))) 12 model.add(BatchNormalization()) 13 model.add(ELU()) 14 model.add(Conv2DTranspose(128, (5, 5), padding='same', strides=(2, 2))) 15 model.add(BatchNormalization()) 16 model.add(ELU()) 17 model.add(Conv2DTranspose(64, (5, 5), padding='same', strides=(2, 2))) 18 model.add(BatchNormalization()) 19 model.add(ELU()) 20 model.add(Conv2DTranspose(3, (5, 5), padding='same', strides=(2, 2), activation='tanh')) 21 # 128 x 128 22 print('summary generator') 23 model.summary() 24 return model 25 26 def __makeDiscriminator(self): 27 normalization = InstanceNormalization 28 print('create discriminator') 29 model = Sequential() 30 model.add(Conv2D(64, (5, 5), padding='same', strides=(2, 2), input_shape=(self.img_l, self.img_l, 3))) 31 model.add(normalization()) 32 model.add(LeakyReLU()) 33 model.add(Conv2D(128, (5, 5), padding='same', strides=(2, 2))) 34 model.add(normalization()) 35 model.add(LeakyReLU()) 36 model.add(Conv2D(256, (5, 5), padding='same', strides=(2, 2))) 37 model.add(normalization()) 38 model.add(LeakyReLU()) 39 model.add(Flatten()) 40 model.add(Dense(1024)) 41 model.add(LeakyReLU()) 42 model.add(Dense(1, activation='sigmoid')) 43 print('summary discriminator') 44 model.summary() 45 return model

###生成画像
参考までに載せます。
補足情報にも載せますが、GTX965Mのため時間がかかりすぎるのでこの画像はまだ10エポック目のものです。
Image

###質問まとめ
このモデルでもはっきりとした画像生成は可能なのでしょうか?

また、上記のように10エポック目なのですがこのまま待つべきでしょうか?

色々調べている中で全結合層をなくしてGlobalAveragePooling層を入れるとありますが、上記のような浅いモデルにも入れるべきでしょうか?

まだ、知識がないため変なことを書いているかもしれませんがどうか回答お願いします。

###補足情報
Python 3.5
Ubuntu 16.04 LTS
ノートPC(GTX965M 4GB搭載)
画像 43000枚 主にキララ系アニメ

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

https://qiita.com/mattya/items/e5bfe5e04b9d2f0bbd47
http://hi-king.hatenablog.com/entry/2017/11/19/141513
http://musyoku.github.io/2017/02/06/Wasserstein-GAN/
GANはホットな話題ですよね。

ニューラルネットワーク構造を見てそれがどれほどの性能になるのかがわかる方ってそんなにいらっしゃらないように思います。
ネットワークの構造とデータのセットで性能が決まるので。

http://memo.sugyan.com/entry/20160516/1463359395
次第にそれっぽくなって、そして崩壊して行くものかと思われるので、画像の変遷を追って行く必要があります。
http://www.lifull.blog/entry/2016/02/26/211332

うまくいっているかどうかは人が判断するほかないように思われるのですが、どなたか良い指標を教えてくれるかもしれません。

投稿2018/01/05 12:45

mkgrei

総合スコア8560

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問