最近使用很多軟件的時候會提示可以選擇開啟青少年模式,這些大廠在保護(hù)青少年有所行動是好事,因?yàn)楝F(xiàn)在很多小朋友都開始玩手機(jī)。我就想起來能不能有一個算法去識別圖片中是小孩或者是大人,這對計(jì)算機(jī)視覺來說不是一個復(fù)雜的問題,這是一個典型的分類問題。
在上一篇文章中圖像分類實(shí)踐展示了使用docker安裝一個cpu的模型訓(xùn)練環(huán)境,今天我們在windows上安裝一個GPU的版本。
萬事開頭難
需要安裝
- anaconda3
python的科學(xué)計(jì)算環(huán)境 - CUDA
GPU程序包 - cudnn
神經(jīng)網(wǎng)絡(luò)的包,需要找到官網(wǎng)右鍵查看下載鏈接,最好用迅雷下載 - pytorch
最流行的AI(人工智能)工具
配置清華的源
conda install pytorch torchvision cudatoolkit=10.2 -c pytorch - fastai
基于上面的工具開發(fā)的快速開發(fā)深度學(xué)習(xí)算法程序的工具
conda install -c fastai fastai
準(zhǔn)備數(shù)據(jù)
隨便在網(wǎng)上下載了幾十張照片,分別是百度圖片和bing圖片搜索的
訓(xùn)練數(shù)據(jù) 文件源只有22張照片
設(shè)置了訓(xùn)練數(shù)據(jù)的目錄,修復(fù)中文label顯示的問題。
準(zhǔn)備測試數(shù)據(jù)
標(biāo)簽函數(shù)需要自定義
查看測試數(shù)據(jù)
接下來基于上面的數(shù)據(jù)進(jìn)行模型訓(xùn)練,訓(xùn)練的過程中打印錯誤率。這里基于resnet34算法,屬于遷移學(xué)習(xí),還使用的最新的訓(xùn)練方法。并沒有進(jìn)行調(diào)優(yōu)。
訓(xùn)練
測試數(shù)據(jù)
我們使用新測試的數(shù)據(jù)以便區(qū)別訓(xùn)練數(shù)據(jù)和驗(yàn)證數(shù)據(jù),使用模型沒有見過的圖片。
測試數(shù)據(jù)集
看看實(shí)際的效果
測試一
測試二
看起來還不錯的樣子。
使用的電腦是普通的筆記本
GPU截圖 GPU MX150
安裝機(jī)器學(xué)習(xí)的環(huán)境還比較快,花費(fèi)了一兩個小時(希望只安裝一次)。GPU的內(nèi)存比較小,需要調(diào)小每次訓(xùn)練batch的size,如果內(nèi)存溢出需要重新啟動kernel。
跑fastai的最簡單示例竟然需要七分鐘,看來還是要找免費(fèi)的GPU。