百度飛槳PaddlePaddle論文復現訓練營——U-GAT-IT 論文復現心得

項目背景

復現心得

在這次復現之前,筆者僅僅接觸過 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 需要注意
  • 模型參數保存方式