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

2021-09-01 23:45:42 字數 2450 閱讀 5675

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

bigan(bidirectional gan 雙向gan)

具有生成器g,編碼器encoder,判別器d

作用:1.可以使用noise經過生成器g生成(這一點和gan類似)

2.隨便給一張,經過encoder,再經過生氣g,可以生成相似的(新特點)

**位置:

生成器:

def

build_generator

(self)

: model = sequential(

) model.add(dense(

512, input_dim=self.latent_dim)

) model.add(leakyrelu(alpha=

0.2)

) model.add(batchnormalization(momentum=

0.8)

) model.add(dense(

512)

) model.add(leakyrelu(alpha=

0.2)

) model.add(batchnormalization(momentum=

0.8)

) model.add(dense(np.prod(self.img_shape)

, activation=

'tanh'))

model.add(reshape(self.img_shape)

) model.summary(

) z = input(shape=

(self.latent_dim,))

gen_img = model(z)

return model(z, gen_img)

編碼器:

def

build_encoder

(self)

: model = sequential(

) model.add(flatten(input_shape=self.img_shape)

) model.add(dense(

512)

) model.add(leakyrelu(alpha=

0.2)

) model.add(batchnormalization(momentum=

0.8)

) model.add(dense(

512)

) model.add(leakyrelu(alpha=

0.2)

) model.add(batchnormalization(momentum=

0.8)

) model.add(dense(self.latent_dim)

) model.summary()

img = input(shape=self.img_shape)

z = model(img)

return model(img, z)

判別器:

def

build_discriminator

(self)

: z = input(shape=

(self.latent_dim,))

img = input(shape=self.img_shape)

d_in = concatenate(

[z, flatten(

)(img)])

model = dense(

1024

)(d_in)

model = leakyrelu(alpha=

0.2)

(model)

model = dropout(

0.5)

(model)

model = dense(

1024

)(model)

model = leakyrelu(alpha=

0.2)

(model)

model = dropout(

0.5)

(model)

model = dense(

1024

)(model)

model = leakyrelu(alpha=

0.2)

(model)

model = dropout(

0.5)

(model)

validity = dense(

1, activation=

"sigmoid"

)(model)

return model(

[z, img]

, validity)

訓練圖:

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

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

深度學習學習筆記

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

深度學習筆記

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