『cs231n』通過代碼理解gan網絡&tensorflow共享變量機制_上
一、計算圖效果以及實際代碼實現
計算圖效果
實際模型實現
相關介紹移步我的github項目。
二、生成器與判別器設計
生成器
相關參量,
噪聲向量z維度:100
標簽向量y維度:10(如果有的話)
生成器features控制參量gf標量值:64
生成器features控制參量gfc標量值:1024
無標簽訓練,
100 -線性層->
4*4*8*64 -轉置卷積-> 4,4,8*64 -轉置卷積-> 8,8,4*64 -轉置卷積-> 16,16,2*64 -轉置卷積-> 32,32,64 -轉置卷積->
64,64,3
含標簽訓練,所謂的concat實際就是把features和y進行拼接,
新參量:
z=110,yb = 1,1,10
110 -線性層->
1024 -concat->
1034 -線性層->
16*16*2*64 -reshape->
16,16,128 -concat->
16,16,138 -轉置卷積->
32,32,128 -concat->
32,32,138 -轉置卷積->
64,64,3
判別器
相關參量,
圖片維度:64,64,3
標簽向量y維度:10(如果有的話)
生成器features控制參量df標量值:64
生成器features控制參量dfc標量值:1024
無標簽訓練,
64,64,3 -conv-> 32,32,64 -conv-> 16,16,64*2 -conv-> 8,8,64*4 -conv->
4,4,64*8 -reshape->
4*4*64*8 -線性層-> 1
含標簽訓練,
新參量:
x = 64,64,13,yb = 1,1,10
64,64,13 -conv-> 32,32,13 -concat->
32,32,23 -conv->
16,16,74 -reshape->
16*16*74 -concat->
16*16*74+10 -線性層->
1024 -concat->
1034 -線性層-> 1
三、結果查看
生成器損失
判別器real損失
判別器fake損失
判別器總損失
從訓練過程中來看,經歷了初期的下降之后,幾個loss值均會在波動中維持一個動態平衡,而GAN的loss值並不能直接反應訓練結果,所以我們需要直接看輸出圖。
本次實驗中一功運行了23個epoch,這里給出每個epoch開始的輸出以及最后的的一張輸出,以供參考: