VGG16实现分类任务
VGG16實現分類任務
VGG是2014年由牛津大學著名研究組VGG(Visual Geometry Group)提出,斬獲當年ImageNet競賽中定位任務第一名和分類任務第二名。
原理圖
原理簡述
例如有張224x224的RGB圖片,我們讓他通過兩個卷積核為3的卷積層,再通過最大池化層**(核尺寸為2,步距為2)**。至于卷積層的輸入輸出維度,參考下圖,我們一般常用VGG16模型,最終用多個FC實現分類,也可將FC換成卷積核為1的卷積層。
數據集
同樣選用本人常用的海賊王數據集來測試,可以根據個人需求修改。
下面提供一個簡單數據集。
Kaggle的鳥兒分類數據集,共315個分類
https://www.kaggle.com/gpiosenka/100-bird-species
可以用kaggle命令選擇下載
kaggle datasets download -d gpiosenka/100-bird-species數據預處理
講圖片預resize為224x224的圖片,并進行隨機翻轉,可參考圖像增廣
https://www.quarkhackers.space/2021/10/15/%E5%9B%BE%E5%83%8F%E5%A2%9E%E5%B9%BF/
最終轉為Tensor,并進行歸一化處理。
參考代碼
transforms.Compose([transforms.RandomResizedCrop(224),transforms.RandomHorizontalFlip(),transforms.ToTensor(),transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])訓練結果
結果分析
在訓練過程,針對此數據集,VGG16的學習率不宜過高,過高會出現loss不收斂
在loss為0.01時結果如下
VGG網絡acc可達到百分之90以上,只是對于小數據集而言,模型過于繁重,可選用層數少的模型,并且在后面3層FC,可根據個人需求修改。
完整代碼鏈接
https://github.com/JiaZhengJingXianSheng/VGG16
總結
以上是生活随笔為你收集整理的VGG16实现分类任务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信电子取证
- 下一篇: Tian Ji -- The Horse