日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习总结:GAN,3种方式实现fixedGtrainD,fixedDtrainG, retain, detach

發布時間:2024/9/15 pytorch 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习总结:GAN,3种方式实现fixedGtrainD,fixedDtrainG, retain, detach 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • retain和detach
    • 先更新D,再更新G,這個也是GAN論文的實現方式
    • 先更新G,再更新D,實際上他兩誰先誰后都一樣,都是相互對抗:
    • 第三種是第一種的改進, 先更新D,再更新G,計算最少,還沒見到別人實現,估計知名框架這么實現,每具體檢查過:

retain和detach

pytorch有兩個功能:retain和detach:
retain:意思是保持原來graph,可以還在原圖上進行forward pass,下次計算backward還是在原圖上計算;
detach:阻斷,意思是backward pass到這兒就停止了

這兩個東西可以用于實現fixedGtrainD,fixedDtrainG。

先更新D,再更新G,這個也是GAN論文的實現方式

先forward整個網絡;
再backward整個網絡的梯度但是只更新D的參數(相當于G的部分的梯度白算了),這時還需要retain graph一下;
用fake data forward一下D,再backward整個網絡的梯度但是只更新G的參數;
至此完成了一輪G和D的對抗。

先更新G,再更新D,實際上他兩誰先誰后都一樣,都是相互對抗:

先forward整個網絡;
再backward整個網絡的梯度但是只更新G的參數(相當于D的部分的梯度只是用來傳遞G的梯度);
先forward整個網絡,這時還需要detach一下G;
再backward到G就停止了,更新D的參數;
至此完成了一輪G和D的對抗。

第三種是第一種的改進, 先更新D,再更新G,計算最少,還沒見到別人實現,估計知名框架這么實現,每具體檢查過:

先forward整個網絡,同時detach一下G,retain一下graph;
再backward到G停止了,但是只更新D的參數,同時undetach一下G,retain一下graph;用fake data forward一下D;
再backward整個網絡,更新G的參數(相當于D的部分的梯度只是用來傳遞G的梯度);
至此完成了一輪G和D的對抗。

總結

以上是生活随笔為你收集整理的深度学习总结:GAN,3种方式实现fixedGtrainD,fixedDtrainG, retain, detach的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。