深度學習ACGan學習筆記,keras版

2021-08-27 05:32:45 字數 2952 閱讀 9177

對抗生成網路gan變體集合 keras版本

一.acgan(auxiliary classifier gan)

依舊有generator,discriminator,可使用mnsit訓練生成。

和dcgan的不同:

1.增加了class類別標籤參與訓練,可以生成指定類別的

**引用的《web安全之強化學習與gan》,位置:

生成器g**:

def

build_generator

(latent_size)

: cnn = sequential(

) cnn.add(dense(

1024

, input_dim=latent_size, activation=

'relu'))

cnn.add(dense(

128*7*

7, activation=

'relu'))

cnn.add(reshape(

(128,7

,7))

) cnn.add(upsampling2d(size=(2

,2))

) cnn.add(conv2d(

256,(5

,5), padding=

"same"

, kernel_initializer=

"glorot_normal"

, activation=

"relu"))

cnn.add(upsampling2d(size=(2

,2))

) cnn.add(conv2d(

128,(5

,5), padding=

"same"

, kernel_initializer=

"glorot_normal"

, activation=

"relu"))

cnn.add(conv2d(1,

(2,2

), padding=

"same"

, kernel_initializer=

"glorot_normal"

, activation=

"tanh"))

latent = input(shape=

(latent_size,))

image_class = input(shape=(1

,), dtype=

'int32'

) cls = flatten(

)(embedding(10,

100, embeddings_initializer=

"glorot_normal"

)(image_class)

)#h = merge([latent, cls], mode='mul')

h=add(

[latent, cls]

) fake_image = cnn(h)

return model(inputs=

[latent, image_class]

, outputs=

[fake_image]

)

判別器d**:

def

build_discriminator()

: cnn = sequential(

) cnn.add(conv2d(32,

(3,3

), padding=

"same"

, strides=(2

,2), input_shape=(1

,28,28

))) cnn.add(leakyrelu())

cnn.add(dropout(

0.3)

) cnn.add(conv2d(64,

(3,3

), padding=

"same"

, strides=(1

,1))

) cnn.add(leakyrelu())

cnn.add(dropout(

0.3)

) cnn.add(conv2d(

128,(3

,3), padding=

"same"

, strides=(2

,2))

) cnn.add(leakyrelu())

cnn.add(dropout(

0.3)

) cnn.add(conv2d(

256,(3

,3), padding=

"same"

, strides=(1

,1))

) cnn.add(leakyrelu())

cnn.add(dropout(

0.3)

) cnn.add(flatten())

image = input(shape=(1

,28,28

))features = cnn(image)

fake = dense(

1, activation=

'sigmoid'

, name=

'generation'

)(features)

aux = dense(

10, activation=

'softmax'

, name=

'auxiliary'

)(features)

return model(inputs=

[image]

, outputs=

[fake, aux]

)

訓練圖:

深度學習英文縮寫 小KE帶你認識機器學習和深度學習

這一次,小ke帶你了解幾個火爆的 人工智慧 名詞兒,這樣在擼串炸雞啤酒時,可以跟小夥伴吹噓吹噓,提高提高自己的人格檔次。機器學習 和 深度學習 這幾個名詞,經常會和人工智慧一同出現在不同場合,他們都是什麼意思呢?人工智慧 先來看看人工智慧。在1956年達特矛斯會議上,約翰 麥卡錫提出了 人工智慧 這...

深度學習學習筆記

神經網路的隱含層越多 模型引數越多,模型擬合能力更強,同時訓練的難度也會增加。減少模型引數的方法有兩種 逐層訓練和權重共享。權重共享思路是現有深度學習的基礎,它大大減少了模型的引數。深度學習並不需要很多的人工特徵工程,利用其強大的建模能力來代替,整個訓練的過程是端到端的過程 end to end 其...

深度學習筆記

在深度神經網路中,通常使用一種叫修正線性單元 rectified linear unit,relu 作為神經元的啟用函式。relu函式其實是分段線性函式,把所有的負值都變為0,而正值不變,這種操作被成為單側抑制。可別小看這個簡單的操作,正因為有了這單側抑制,才使得神經網路中的神經元也具有了稀疏啟用性...