###実現したいこと
現在、アニメ顔の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エポック目のものです。
###質問まとめ
このモデルでもはっきりとした画像生成は可能なのでしょうか?
また、上記のように10エポック目なのですがこのまま待つべきでしょうか?
色々調べている中で全結合層をなくしてGlobalAveragePooling層を入れるとありますが、上記のような浅いモデルにも入れるべきでしょうか?
まだ、知識がないため変なことを書いているかもしれませんがどうか回答お願いします。
###補足情報
Python 3.5
Ubuntu 16.04 LTS
ノートPC(GTX965M 4GB搭載)
画像 43000枚 主にキララ系アニメ
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。