做網(wǎng)站的能賺多少錢shopify seo
DCGAN生成漫畫頭像
首先肯定是下載訓(xùn)練數(shù)據(jù),而這些訓(xùn)練數(shù)據(jù)就是一些卡通頭像。后來我們會(huì)看到這個(gè)具體的頭像
就像其他的數(shù)據(jù)集目錄一樣,它是由一些目錄和這個(gè)目錄下面的文件組成的數(shù)據(jù)集。
有相當(dāng)多的圖片。所以可以訓(xùn)練出來比較好的效果。
圖片的處理常規(guī)操作。一般就是縮減一下,縮小一下大小。中央部分的裁剪,通道的變化。
可見都是一些很小的頭像圖片。
根據(jù)論文得到的gen nn的結(jié)構(gòu)如下
判別器的結(jié)構(gòu)如下
定義損失函數(shù)
adversarial_loss = nn.BCELoss(reduction=‘mean’)
當(dāng)然再配上2 優(yōu)化器
定義D和G的forward
就是運(yùn)用前面的正向得到的loss,再給優(yōu)化器去優(yōu)化
ms.jit會(huì)編譯代碼為機(jī)器碼,加速的
這種模型訓(xùn)練的還比較快。不知道是不是網(wǎng)絡(luò)的關(guān)系?
畫個(gè)圖看看D和G的loss
loss都變小
img = np.clip(np.concatenate((images[:]), axis=0), 0, 1) 這段代碼只是將圖片里面圖片進(jìn)行一個(gè)疊加,然后再把值限定在0,1,小于0的是0,大于1的是1。
1 image shape is
把0緯度的東西,就是圖片取出來放到一起,就是把所有圖片都放一起了。而clip的意思是裁剪,把超過0,1的值變成0,1之間。好像裁剪一樣,像我前面說的那樣。
ani = animation.ArtistAnimation(fig, show_list, interval=1000, repeat_delay=1000, blit=True)
ani.save(‘./dcgan.gif’, writer=‘pillow’, fps=1)
可以把靜態(tài)圖片變成gif動(dòng)圖,看到質(zhì)量越來越高了。