【随笔】深度学习的数据增强还分在线和离线?
之前看深度學習的文章,基本都在數據預處理部分進行了數據增強。
什么旋轉、跳躍、我不停歇~
不對,不對。是旋轉、平移、裁剪等操作。
所以最近在做目標檢測時,廢話不多說,先把數據增強的代碼整上去!
from paddlex.det import transforms train_transforms = transforms.Compose([transforms.RandomDistort(),#transforms.RandomExpand(),transforms.RandomCrop(),transforms.RandomHorizontalFlip(),transforms.Normalize(),#transforms.ResizeByShort(short_size=800, max_size=1333),transforms.Padding(coarsest_stride=32) ])eval_transforms = transforms.Compose([transforms.Normalize(),#transforms.ResizeByShort(short_size=800, max_size=1333),transforms.Padding(coarsest_stride=32), ])上面這段代碼是 paddle 框架中的數據增強接口,用了幾天發現有點不對勁,這貨一通操作后,具體把樣本擴充到多少張了?
這是個問題。
所以咨詢了 paddle 的開發人員后,發現這個數據增強接口 并沒有做數據擴充,只是對圖片進行變換,你大媽已經不是你大媽了,但是你最終還是只有一個大媽。
如果數量不變的話,數據增強有什么意義呢?菜雞的我又去 Github 上問了下。
“將訓練的epoch數增大,就等價于擴充了訓練時的圖像數量”,這句話很有哲理。
在一番搜索之后,這其實說的是 在線數據增強,一般常見的是 離線數據增強,也是就一次性把數據擴充好,用這個大數據集進行模型訓練。
而這樣的方式,在數據集很大時,就比較耗費空間,所以這時就可以采用 “在線數據增強”,也就是說在每個epoch進行訓練前,對數據集進行旋轉、平移等變換。等到下一次epoch時,只要數據增強方式夠多,并且每個方式都包含隨機因子,那么就可以保證每個epoch訓練的數據都是不一樣的,也就是說有多少輪epoch,我們就把數據擴充了多少倍。
本節煉丹小課堂就結束了,同學們下節課見~
猜你喜歡:👇🏻
?【算法】深度學習神經網絡都調哪些參數?
?【總結】一文了解所有的機器學習評價指標
?【總結】機器學習劃分數據集的幾種方法
總結
以上是生活随笔為你收集整理的【随笔】深度学习的数据增强还分在线和离线?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: thymeleaf 判断checkbox
- 下一篇: 【总结】一文了解所有的机器学习评价指标