論文瀏覽(11) A Multigrid Method for Efficiently Training Video Models


0. 前言

  • 相關資料:
  • 論文基本信息
    • 領域:視頻理解 訓練加速
    • 作者單位:FAIR&得克薩斯大學奧斯汀分校
    • 發表時間:2019.12
  • 這工作對我們這種算力不夠的人非常有幫助,也開源了,爲啥沒啥人討論呢。
    • 可能做視頻算法的,除了我們,都是有錢人吧……
    • 人生第一次訓練Kinetics-400,就是現在了嗎……

1. 要解決什麼問題

  • 現在的視頻相關模型訓練時間太久。
    • 128卡在Kinetics-400上訓練Slowfast也要一天多……
    • high resolution models(指的應該是3D CNN模型,如I3D、SlowFast) 性能好,但訓練時間長。
    • low resolution models(指的應該是2D CNN模型,如TSN、TSM)訓練時間較短,但性能差。

2. 用了什麼方法

  • 提出了一個multigrid的訓練模型的方法。
    • 該方法的目標是加快訓練速度,且不損失太多精度。
    • 一個結論:在訓練過程中,輸入數據的shape不用一定是固定的。
    • 總體思路:
      • coarse-to-fine,即從粗糙到精細。
      • 主要需要平衡“預處理每個mini-batch數據的計算量”與“不同輸入數據尺寸導致的模型計算量”。
  • 方法基本流程
    • 簡單說,就是在訓練過程中不斷變換輸入數據的尺寸。
    • 假設輸入數據爲(batch_size, t, h ,w ,c)
    • 訓練過程中,batch_size, t, h ,w 都會不停的變換。
      • 剛剛提到,總體思路是從粗糙到精細。所謂粗糙就指的是h, w較小,精細指的是h, w較大。
    • 另外,隨着在改變整體shape的時候,一般要求總計算量(FLOPs)不會變化太大。
  • 一些基本概念:
    • sampling grids: 按我的理解就是,當batch_size, t, h, w這些數值固定後,就是一個sampling grid。
      • 一個sampling grid就代表一次對video的重採樣(resample)。
      • 對於上面沒一個維度,都有兩個量化數值,span/stride,前者表示所有可取的值,後者表示採樣間隔。
      • 相同的input size可能會是不用的 sampling grid。
    • grid scheduling:
      • 感覺意思差不多就是training schedule,在訓練過程中變化 batch_size, t, h, w 這些維度。
  • 具體實現方式:
    • multigrid training的一個重要部分就是如何選擇 sampling grids
      • 本質就是怎麼在訓練過程中變換 batch_size, t, h, w 這幾個維度。
    • 文中提出了 short cycles, long cycles, long+short cycles,如下圖所示。
    • image_1ebv34bsk2pu1md4nsepai3s69.png-132.6kB

3. 效果如何

  • 在Kinetics-400上,用128GPU,訓練backbone爲ResNet50的SlowFast模型。
    • 橫座標所謂的wall-clock time猜測就是總訓練時間(剛開始看,baseline訓練20小時完事了,震驚了,結果仔細一看,128GPU……)。
    • 圖中所謂的 1x 這些指的是 epochs 的數量,1x就是指與baseline相同。
    • 對於1x的epochs,baseline/short cycle/long cycle/short-long cycle的訓練時間分別是20/8/5/5小時……
    • image_1ebvb8l0g10dd8d11oq91a4u1pjam.png-138kB
  • 在Kinetics-400上,用1GPU訓練I3D模型。
    • 訓練時間從6.7天減少到2天……
    • image_1ebvcirebelblooshup81tkj13.png-35.3kB
  • 在Something-Something-V2/Charades上也嘗試使用multigrid訓練,效果都可以
    • 從而證明這種方法對各類數據集都有效。
      image_1ebvcku58l7s1u8d1rr41fv91d371g.png-91.8kB

4. 還存在什麼問題

  • 感覺是比較工程化的項目(我喜歡),也沒有太多“爲什麼”,做了這麼多試驗就是有效。

  • 等有機會,要在ava上也試試。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章