百度飛槳PaddlePaddle論文復現訓練營——U-GAT-IT 論文復現心得
項目背景
-
本次論文復現是源自百度頂會論文復現營:
-
復現對象是 2020 ICLR 上的 U-GAT-IT 這篇論文:
-
論文閱讀筆記:
-
論文的源代碼是 Pytorch 版本,本次需要在 PaddlePaddle 的框架下進行復現
復現心得
在這次復現之前,筆者僅僅接觸過 PaddlePaddle 的框架,有過一些基礎知識的學習。對於 Pytorch 完全沒有接觸,僅僅知道 Pytorch 由於其簡單易用性,深受研究者的青睞。這次是第一次接觸 Pytorch,整個復現過程走下來確實深有感觸,Paddle 的框架還需要繼續努力才能追趕上 Pytorch 的易用性啊!不過在中美關係緊張的大背景下,說不定哪一天 Pytorch 和 Tensorflow 都用不了了,所以我認為掌握 Paddle 的使用,在國內還是非常有必要的!
由於有 Ai Studio 的平台免費算力,和百度詳細的課程作為基礎,才使得我有機會實踐深度學習的各種前沿應用,所以我算是個百度 Paddle 的鐵杆粉絲了。之前在課程裏面很多前輩都呼籲國內的開源生態建設,想要更多的人加入進來。初來乍到的時候,看各種大佬們發的項目和寫的開源分享,覺得還是挺望塵莫及的,覺得自己能做的好像很少啊~。
直到這次復現經歷,改變了我的想法,其實一個框架的完善是一個永不結束的工程,需要更多的人不斷嘗試,不斷使用,在過程中提出 issue,提出改進的思路,有時候增加一個個小小的函數方法可能會給很多人帶來便利。相信以後想要為開源社區做貢獻可以有更多的思路了~。
填坑記錄
先記錄各種坑,下次回顧解決方案
- Paddle 中目前沒有 Pytorch 的 Transform 模塊,需要自己寫
- 讀取數據的方式不同,要先弄清楚 reader 的工作原理,一開始不容易理解
- 圖片讀取的時候是 CHW 還是 HWC
- 卷積層的輸入為 NCHW,讀入的數據是否匹配
- 讀入數據的 type 要匹配網絡的需求
- 傳入網絡前先要把數據轉成網絡可以認得的 tensor
- Paddle 中沒有計算方差的模塊,需要另寫
- spectral norm 模塊需要另寫
- 讀入參數的 shape 和 Pytorch 不同
- 圖片的數據是 RGB 還是 BGR 需要注意
- 模型參數保存方式