3D CNN(視頻分類網絡)無預訓練權重訓練難以收斂問題在各視頻分類網絡論文中的解決綜合(train from scratch)(更新中)

問題:
視頻分類網絡像two stream i3d等都是直接在作者給的預訓練權重上finetune自己的數據,然後在訓練集上訓練至過擬合。基本隨便一個圖像分類網絡在任意一個數據集的訓練集上都能收斂,但自己直接使用一個恆定的學習率來在自己的數據集train from scratch的話,只要3D CNN一大就從來就沒有收斂過(自己用tf寫的3D-ResNet, Non-local, s3d, p3d等等,但5層的C3D倒是收斂過,可能是網絡參數比較少的緣故)

嘗試解決方法:閱讀一些不能從ImageNet的2D CNN直接重疊
ResNet:只是說一開始用0.1的學習率有點大就除了10其他就沒有其他的解釋了

original warmup:1.constant warmup 2.gradual warmup
1.constant warmup:以一個較小的學習率先訓練5個epoch,然後再回到較大的學習率(較小學習率的k倍)
2.gradual warmup:以一個較小的學習率開始,在每個iteration訓練後增加一點學習率,直到在第5個epoch後,學習率增加到後續學習率衰退策略的初始學習率;
文章中使用的constant warmup lr=0.1,gradual warmup學習率從0.1在5個epoch下增加到3.2,然後再使用30,60,90個epoch學習率除以10的學習率衰退的策略
本文的主要結果是使用了gradual warmup後,使用較大的minibatch size訓練的訓練曲線(縱座標爲訓練錯誤率,橫座標爲epoch)和在使用較小的minibatch size訓練時的訓練曲線在後面大部分epoch基本重合
(Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour)

slowfast:共計訓練256個epoch,共計60K iterations,minibatch size爲1024,每個epoch訓練240K個視頻,warmup 8K iterations,即8K1024個數據(8K1024/240K=34.13個epoch);之後的epoch同樣採用half-cosine period學習率衰退策略,策略初始學習率爲1.6(共計128個GPU,0.0125 per GPU)

csn:共計訓練45個epoch,warmup10個epoch,一個epoch訓練1M數據(原始數據量爲240K,1M爲數據擴充後的數據量),之後的35個epoch的學習率服從一個half-cosine period學習率策略,該策略的初始學習率爲0.64(共計64個GPU,0.01 per GPU)

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