UNetGenerator 有 8 layer , Residual Block

在 8 層的 UNet 結構中,Residual Block(殘差塊) 最適合加在 深層、中層的 Encoder 部分,這樣能幫助保留細節,同時讓梯度更穩定地回傳。


建議加 Residual Block 的層數

  1. 建議加在 Encoder(下採樣)的中深層:
    • Layer 3、4、5、6
    • 這些層負責學習較高層次的字型風格,適合殘差學習
    • 避免在最淺(Layer 1,2)或最深(Layer 8)層加入,避免影響低層特徵或輸出收斂
  2. 不建議加在:
    • 最內層(Layer 1):這是 UNet 的 bottleneck,不適合加入額外的殘差學習,避免增加過多計算
    • 最外層(Layer 8):這是 Generator 的輸出層,應保持最簡單的學習

最終推薦方案

層數Residual BlockSelf-Attention作用
Layer 1 (bottleneck)保持簡單,避免梯度干擾
Layer 2只做基本特徵下採樣
Layer 3深層特徵提取
Layer 4風格特徵學習,加入 Self-Attention
Layer 5高層語義學習
Layer 6進一步風格保留
Layer 7主要負責融合
Layer 8 (輸出層)只做輸出,不做額外計算

理由

  • Layer 3–6 負責提取 字型筆劃、風格資訊,適合加入殘差學習
  • Layer 4、6 再加 Self-Attention 來捕捉全局風格
  • 輸入層 & 輸出層保持乾淨,避免不必要的學習干擾

如果希望 Self-Attention 主要用來捕捉 細部風格,可以稍微調整原本的層級設定,讓 Self-Attention 更集中在 細節資訊較重要的層


建議的 Self-Attention 層調整

層數Residual BlockSelf-Attention作用
Layer 1 (bottleneck)保持簡單,避免梯度干擾
Layer 2低層特徵提取
Layer 3開始捕捉細節,加入 Self-Attention
Layer 4深層特徵提取
Layer 5學習字型風格
Layer 6進一步風格保留,加入 Self-Attention
Layer 7融合高層 & 細節資訊,加入 Self-Attention
Layer 8 (輸出層)只做輸出,不做額外計算

調整的理由

  1. Layer 3:這一層剛開始進入深層,加入 Self-Attention 可以讓模型在早期就開始學習局部筆劃特徵(如字的線條、彎曲度)。
  2. Layer 6:這一層是 UNet 重要的上採樣階段,加入 Self-Attention 讓生成的字型能保留更多 Zen Maru Gothic 的風格資訊
  3. Layer 7:這是最接近輸出的高層特徵,這時候加入 Self-Attention 主要是讓字型細節更清楚、邊緣更平滑

對應的效果

Self-Attention 在 Layer 3, 6, 7確保筆劃細節 + 風格學習 + 邊緣處理都能強化
Residual Block 在 Layer 3–6提高深層特徵學習能力,讓風格轉換更穩定

這樣的配置可以讓模型 更有效學習細部風格,避免只學到整體輪廓而忽略字型細節! 🚀

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *