深度學(xué)習(xí)基礎(chǔ)與實(shí)踐 課件 9.2-基于AlexNet的圖像分類實(shí)戰(zhàn)_第1頁
深度學(xué)習(xí)基礎(chǔ)與實(shí)踐 課件 9.2-基于AlexNet的圖像分類實(shí)戰(zhàn)_第2頁
深度學(xué)習(xí)基礎(chǔ)與實(shí)踐 課件 9.2-基于AlexNet的圖像分類實(shí)戰(zhàn)_第3頁
深度學(xué)習(xí)基礎(chǔ)與實(shí)踐 課件 9.2-基于AlexNet的圖像分類實(shí)戰(zhàn)_第4頁
深度學(xué)習(xí)基礎(chǔ)與實(shí)踐 課件 9.2-基于AlexNet的圖像分類實(shí)戰(zhàn)_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于AlexNet的圖像分類實(shí)戰(zhàn)序號(hào)超類類別1水生哺乳動(dòng)物海貍,海豚,水獺,海豹,鯨魚2魚水族館的魚,比目魚,射線,鯊魚,鱒魚3花卉蘭花,罌粟花,玫瑰,向日葵,郁金香4食品容器瓶子,碗,罐子,杯子,盤子5水果和蔬菜蘋果,蘑菇,橘子,梨,甜椒6家用電器時(shí)鐘,電腦鍵盤,臺(tái)燈,電話機(jī),電視機(jī)7家用家具床,椅子,沙發(fā),桌子,衣柜8昆蟲蜜蜂,甲蟲,蝴蝶,毛蟲,蟑螂9大型食肉動(dòng)物熊,豹,獅子,老虎,狼10大型人造戶外用品橋,城堡,房子,路,摩天大樓11大自然的戶外場(chǎng)景云,森林,山,平原,海12大雜食動(dòng)物和食草動(dòng)物駱駝,牛,黑猩猩,大象,袋鼠13中型哺乳動(dòng)物狐貍,豪豬,負(fù)鼠,浣熊,臭鼬14非昆蟲無脊椎動(dòng)物螃蟹,龍蝦,蝸牛,蜘蛛,蠕蟲15人寶貝,男孩,女孩,男人,女人16爬行動(dòng)物鱷魚,恐龍,蜥蜴,蛇,烏龜17車輛1自行車,公共汽車,摩托車,皮卡車,火車18車輛2割草機(jī),火箭,有軌電車,坦克,拖拉機(jī)19小型哺乳動(dòng)物倉鼠,老鼠,兔子,母老虎,松鼠20樹木楓樹,橡樹,棕櫚,松樹,柳樹數(shù)據(jù)集介紹CIFAR-100

數(shù)據(jù)集介紹CIFAR100數(shù)據(jù)集和CIFAR10類似,它有100個(gè)類,每個(gè)類包含600個(gè)圖像,600個(gè)圖像中有500個(gè)訓(xùn)練圖像和100個(gè)測(cè)試圖像。100類實(shí)際是由20個(gè)大類(每個(gè)

類又包含5個(gè)子類)構(gòu)成(5*20=100)。01圖像分類圖像分類概述

圖像分類,是對(duì)輸入圖像按照內(nèi)容、等級(jí)或性質(zhì)分別歸類。它是計(jì)算機(jī)視覺的核心任務(wù)之一,應(yīng)用廣泛。它本質(zhì)上就是在分類對(duì)象的屬性空間,找到可將事物分類的最佳視角,使得同類事物在屬性空間內(nèi)靠得很近,而不同類型離得很遠(yuǎn)。

圖像分類的目標(biāo)是將不同的圖像劃分到不同的類別,實(shí)現(xiàn)最小分類誤差,最高精度。數(shù)據(jù)預(yù)處理數(shù)據(jù)預(yù)處理基于機(jī)器學(xué)習(xí)的圖像分類過程02分類器設(shè)計(jì)與學(xué)習(xí)分類決策特征提取與表示特征提取與表示測(cè)試圖像訓(xùn)練圖像目標(biāo)類別

特征提?。和ǔ膱D像中按照固定步長(zhǎng)、尺度提取大量局部特征描述。常用的局部特征包括SIFT(Scale-Invariant

Feature

Transform,尺度不變特征轉(zhuǎn)換)、HOG(Histogram

ofOriented

Gradient,方向梯度直方圖)、LBP(Local

Bianray

Pattern,局部二值模式)等,一般也采用多種特征描述,防止丟失過多的有用信息。

特征編碼

:底層特征中包含了大量冗余與噪聲,為了提高特征表達(dá)的魯棒性,需要使用一種特征變換算法對(duì)底層特征進(jìn)行編碼,稱作特征編碼。常用的特征編碼方法包括向量量化編碼、稀疏編碼、局部線性約束編碼、Fisher向量編碼等。圖像分類傳統(tǒng)的圖像分類方法通常完整建立圖像分類模型一般包括特征提取,特征編碼,空間約束,圖像分類等幾個(gè)階段。02達(dá)。金字塔特征匹配是一種常用的特征匯聚方法,這種方法提出將圖像均勻分塊,在分塊內(nèi)做特征匯聚。

通過分類器分類

:經(jīng)過前面步驟之后一張圖像可以用一個(gè)固定維度的向量進(jìn)行描述,接下來就是經(jīng)過分類器對(duì)圖像進(jìn)行分類。通常使用的分類器包括SVM(Support

Vector

Machine,支持向量機(jī))、隨機(jī)森林等。而使用核方法的SVM是最為廣泛的分類器,在傳統(tǒng)圖像分類任務(wù)上性能很好。圖像分類傳統(tǒng)的圖像分類方法通常完整建立圖像分類模型一般包括特征提取,特征編碼,空間約束,圖像分類等幾個(gè)階。

空間特征約束

:特征編碼之后一般會(huì)經(jīng)過空間特征約束,也稱作特征匯聚。特征匯聚是指在一個(gè)空間范圍內(nèi),對(duì)每一維特征取最大值或者平均值,可以獲得一定特征不變性的特征表02段圖像分類基于深度學(xué)習(xí)的圖像分類方法

常用的標(biāo)準(zhǔn)網(wǎng)絡(luò)模型:LeNet、AlexNet、Vgg系列、ResNet系列、DenseNet系列、GoogleNet、NasNet、Xception、SeNet(stateofart)……

輕量化網(wǎng)絡(luò)模型:Mobilenetv1,v2、Shufflenet

v1,v2、Squeezenet……

目前輕量化模型在具體項(xiàng)目應(yīng)用時(shí)用的比較廣泛。

優(yōu)點(diǎn):參數(shù)模型小,方便部署,計(jì)算量小,速度快。

缺點(diǎn):輕量化模型在精度上沒有Resnet系列、Inception系列、Densenet系列、Senet的

accuracy高。02圖像分類基于深度學(xué)習(xí)的圖像分類方法LeNet是卷積神經(jīng)網(wǎng)絡(luò)的祖師爺LeCun在1998年提出,用于解決手寫數(shù)字識(shí)別的視覺任務(wù)。自那時(shí)起,CNN的最基本的架構(gòu)就定下來了:卷積層、池化層、全連接層。如今各大深度學(xué)習(xí)框架中所使用的LeNet都是改進(jìn)過的LeNet-5(-5表示具有5個(gè)層),和原始的LeNet有些許不同,比如把激活函數(shù)改為了現(xiàn)在很常用的ReLu。但是這個(gè)模型在后來的一段時(shí)間并未能火起來,主要原因是費(fèi)機(jī)器(計(jì)算跟不上)圖片來源:《Gradient-based

learning

applied

to

document

recognition》02圖像分類基于深度學(xué)習(xí)的圖像分類方法AlexNet在2012年ImageNet競(jìng)賽中以超過第二名10.9個(gè)百分點(diǎn)的絕對(duì)優(yōu)勢(shì)一舉奪冠,從此深度學(xué)習(xí)和卷積神經(jīng)網(wǎng)絡(luò)名聲鵲起,深度學(xué)習(xí)的研究如雨后春筍般出現(xiàn),AlexNet的出現(xiàn)可謂是卷積神經(jīng)網(wǎng)絡(luò)的王者歸來。AlexNet為8層深度網(wǎng)絡(luò),其中5層卷積層和3層全連接層,不計(jì)LRN層和池化層。圖片來源:《ImageNetClassificationwithDeepConvolutional

Neural

Networks》02基于AlexNet網(wǎng)絡(luò)實(shí)現(xiàn)圖像分類實(shí)踐AlexNet網(wǎng)絡(luò)代碼介紹AlexNet網(wǎng)絡(luò)共包含五個(gè)卷積層提取特征,并使用ReLU作為激活函數(shù),避免梯度彌散,使用重疊的最大池化以得到更加豐富的特征。AlexNet((features):Sequential((0):Conv2d(3,96,kernel_size=(11,11),stride=(4,4),padding=(2,2))(1):ReLU(inplace)(2):MaxPool2d(kernel_size=3,stride=2,padding=0,dilation=1,ceil_mode=False)(3):Conv2d(96,256,kernel_size=(5,5),stride=(1,1),padding=(2,2))(4):ReLU(inplace)(5):MaxPool2d(kernel_size=3,stride=2,padding=0,dilation=1,ceil_mode=False)(6):Conv2d(256,384,kernel_size=(3,3),stride=(1,1),padding=(1,1))(7):ReLU(inplace)(8):Conv2d(384,384,kernel_size=(3,3),stride=(1,1),padding=(1,1))(9):ReLU(inplace)(10):Conv2d(384,256,kernel_size=(3,3),stride=(1,1),padding=(1,1))(11):ReLU(inplace)(12):MaxPool2d(kernel_size=3,stride=2,padding=0,dilation=1,ceil_mode=False))03……)(1):

ReLU(inplace)(2):

MaxPool2d(kernel_size=3,

stride=2,

padding=0,

dilation=1,

ceil_mode=False)……)

基于AlexNet網(wǎng)絡(luò)實(shí)現(xiàn)圖像分類實(shí)踐第一個(gè)卷積層輸入通道為3,輸出通道為96,卷積核大小為11×11,步長(zhǎng)為4,填充為2,與第一節(jié)所講網(wǎng)絡(luò)結(jié)構(gòu)對(duì)應(yīng)。后面緊跟ReLU激活函數(shù)確保梯度收斂,再使用一個(gè)3×3的池化提取特征,同時(shí)減少參數(shù)的計(jì)算。AlexNet((features):Sequential((0):

Conv2d(3,

96,

kernel_size=(11,

11),

stride=(4,

4),

padding=(2,

2))https://www.cnblogs.com/wanghui-garcia/p/10775367.html

03圖片來源:……)基于AlexNet網(wǎng)絡(luò)實(shí)現(xiàn)圖像分類實(shí)踐第二個(gè)卷積層輸入通道是上一層的輸出,輸出通道是192,卷積核大小為5×5,步長(zhǎng)為1,填充為2,后依舊接了激活函數(shù)和最大池化層,可與上一節(jié)的網(wǎng)絡(luò)結(jié)構(gòu)對(duì)應(yīng)查看。AlexNet((features):Sequential((0):Conv2d(3,96,kernel_size=(11,11),stride=(4,4),padding=(2,2))(1):ReLU(inplace)(2):MaxPool2d(kernel_size=3,stride=2,padding=0,dilation=1,ceil_mode=False)(3):

Conv2d(96,

256,

kernel_size=(5,

5),

stride=(1,

1),

padding=(2,

2))(4):

ReLU(inplace)(5):

MaxPool2d(kernel_size=3,

stride=2,

padding=0,

dilation=1,

ceil_mode=False)……)03……)基于AlexNet網(wǎng)絡(luò)實(shí)現(xiàn)圖像分類實(shí)踐第三、四、五個(gè)卷積層的卷積核大小為3×3,步長(zhǎng)為1,填充為1,僅添加激活函數(shù)沒有做最大池化,在最后使用一個(gè)最大池化提取特征。AlexNet((features):Sequential((0):Conv2d(3,96,kernel_size=(11,11),stride=(4,4),padding=(2,(1):ReLU(inplace)(2):MaxPool2d(kernel_size=3,stride=2,padding=0,dilation=1,ceil_mode=False)(3):Conv2d(96,256,kernel_size=(5,5),stride=(1,1),padding=(2,2))(4):ReLU(inplace)(5):MaxPool2d(kernel_size=3,stride=2,padding=0,dilation=1,ceil_mode=False)(6):

Conv2d(256,

384,

kernel_size=(3,

3),

stride=(1,

1),

padding=(1,

1))(7):

ReLU(inplace)(8):

Conv2d(384,

384,

kernel_size=(3,

3),

stride=(1,

1),

padding=(1,

1))(9):

ReLU(inplace)(10):

Conv2d(384,

256,

kernel_size=(3,

3),

stride=(1,

1),

padding=(1,

1))(11):

ReLU(inplace)(12):

MaxPool2d(kernel_size=3,

stride=2,

padding=0,

dilation=1,

ceil_mode=False))03……)2))基于AlexNet網(wǎng)絡(luò)實(shí)現(xiàn)圖像分類實(shí)踐添加一個(gè)自適應(yīng)平均池化操作,對(duì)于任意大小的輸入,輸出的特征數(shù)目不會(huì)變化。分類使用了三個(gè)全連接層對(duì)其進(jìn)行操作,得到最后1000個(gè)分類,全連接可以保持輸入輸出不變。AlexNet(……(avgpool):

AdaptiveAvgPool2d(output_size=(6,

6))(classifier):Sequential((0):Dropout(p=0.5)(1):Linear

(in_features=9216,out_features=4096,bias=True)(2):ReLU(inplace)(3):Dropout(p=0.5)(4):Linear

(in_features=4096,out_features=4096,bias=True)(5):ReLU(inplace)(6):Linear

(in_features=4096,out_features=1000,bias=True)))03基于AlexNet網(wǎng)絡(luò)實(shí)現(xiàn)圖像分類實(shí)踐三個(gè)連接層中使用ReLU激活函數(shù)保證梯度收斂,然后使用Dropout避免過擬合。AlexNet(……(avgpool):AdaptiveAvgPool2d(output_size=(6,6))(classifier):Sequential((0):

Dropout(p=0.5)(1):Linear(in_features=9216,out_features=4096,bias=True)(2):

ReLU(inplace)(3):

Dropout(p=0.5)(4):Linear(in_features=4096,out_features=4096,bias=True)(5):

ReLU(inplace)(6):Linear(in_features=4096,out_features=1000,bias=True)))03基于AlexNet網(wǎng)絡(luò)實(shí)現(xiàn)圖像分類實(shí)踐當(dāng)前在PyTorch中也有內(nèi)置AlexNet網(wǎng)絡(luò)模型,使用命令torchvision.models.alexnet()即可獲得該網(wǎng)絡(luò)結(jié)構(gòu)。03基于AlexNet

網(wǎng)絡(luò)實(shí)現(xiàn)圖像分類實(shí)踐AlexNet網(wǎng)絡(luò)結(jié)構(gòu)定義使用PyTorch定義AlexNet網(wǎng)絡(luò)結(jié)構(gòu)實(shí)現(xiàn)CIFAR-100的網(wǎng)絡(luò)結(jié)構(gòu)及其參數(shù)設(shè)置如圖所示。注意:AlexNet網(wǎng)絡(luò)原設(shè)定用于在ImageNet數(shù)據(jù)集中進(jìn)行訓(xùn)練,ImageNet數(shù)據(jù)集有1000種類別,

但是,此處數(shù)據(jù)集為CIFAR-100,

只有100個(gè)類別,需要對(duì)應(yīng)修改網(wǎng)絡(luò)最后輸出的參數(shù)類

別num_classes(即100)。03基于AlexNet

網(wǎng)絡(luò)實(shí)現(xiàn)圖像分類實(shí)踐AlexNet網(wǎng)絡(luò)訓(xùn)練

訓(xùn)練和測(cè)試數(shù)據(jù)集轉(zhuǎn)換對(duì)訓(xùn)練集的數(shù)據(jù)和測(cè)試集的數(shù)據(jù)進(jìn)行分辨率重置、圖像翻轉(zhuǎn)等操作,然后將其轉(zhuǎn)換為tensor。transform_train=transforms.Compose([transforms.Resize(224),#重置圖像分辨率transforms.RandomHorizontalFlip(),#依據(jù)概率p對(duì)PIL圖片進(jìn)行水平翻轉(zhuǎn),默認(rèn)0.5transforms.ToTensor

(),#將PILImage或者ndarray轉(zhuǎn)換為tensortransforms.Normalize((0.4914,0.4822,0.4465),(0.2023,0.1994,0.2010)),])transform_test=transforms.Compose([transforms.Resize(224),#重置圖像分辨率transforms.ToTensor

(),#將PILImage或者ndarray轉(zhuǎn)換為tensortransforms.Normalize((0.4914,0.4822,0.4465),(0.2023,0.1994,0.2010)),])03#對(duì)數(shù)據(jù)按通道進(jìn)行標(biāo)準(zhǔn)化,即先減均值,再除以標(biāo)準(zhǔn)差])transform_test=transforms.Compose([transforms.Resize(224),transforms.ToTensor(),transforms.Normalize((0.4914,0.4822,0.4465),(0.2023,0.1994,0.2010)),#對(duì)數(shù)據(jù)按通道進(jìn)行標(biāo)準(zhǔn)化,即先減均值,再除以標(biāo)準(zhǔn)差])基于AlexNet

網(wǎng)絡(luò)實(shí)現(xiàn)圖像分類實(shí)踐AlexNet網(wǎng)絡(luò)訓(xùn)練

數(shù)據(jù)標(biāo)準(zhǔn)化transform_train=transforms.Compose([transforms.Resize(224),transforms.RandomHorizontalFlip(),transforms.ToTensor(),transforms.Normalize((0.4914,0.4822,0.4465),(0.2023,0.1994,0.2010)),03基于AlexNet

網(wǎng)絡(luò)實(shí)現(xiàn)圖像分類實(shí)踐AlexNet網(wǎng)絡(luò)訓(xùn)練

導(dǎo)入數(shù)據(jù)集使用內(nèi)置的函數(shù)導(dǎo)入數(shù)據(jù)集#說明數(shù)據(jù)集的路徑、文件目錄等train_dataset=datasets.CIFAR100(root='./data’,train=True,transform=transform_train,download=False)#root設(shè)置根路徑,設(shè)置要進(jìn)行訓(xùn)練,設(shè)置數(shù)據(jù)變換類型,是否下載數(shù)據(jù)test_dataset=datasets.CIFAR100(root='./data’,train=False,transform=transform_test)#root設(shè)置根路徑,設(shè)置不需要訓(xùn)練,設(shè)置數(shù)據(jù)變換類型#批量讀取訓(xùn)練測(cè)試數(shù)據(jù)train_loader=DataLoader(train_dataset,batch_size=batch_size,shuffle=True)test_loader=DataLoader(test_dataset,batch_size=batch_size,shuffle=False)shuffle=True:參數(shù)設(shè)置為True即打亂數(shù)據(jù)集的順序。03基于AlexNet

網(wǎng)絡(luò)實(shí)現(xiàn)圖像分類實(shí)踐AlexNet網(wǎng)絡(luò)訓(xùn)練

導(dǎo)入模型、定義交叉熵和優(yōu)化函數(shù)#判斷是否存在cuda,存在就使用gpu加速訓(xùn)練,沒有就使用cpu進(jìn)行計(jì)算。device=torch.device("cuda"iftorch.cuda.is_available()else"cpu")model.to(device)#從AlexNet中導(dǎo)入alexnet網(wǎng)絡(luò)模型。model=AlexNet.from_name('alexnet’)#設(shè)置損失函數(shù)為交叉熵。criterion=nn.CrossEntropyLoss()#定義優(yōu)化函數(shù)--Adam(AdaptiveMomentEstimation)本質(zhì)上是帶有動(dòng)量項(xiàng)的RMSprop。optimizer=torch.optim.Adam(model.parameters(),lr=0.001)03基于AlexNet

網(wǎng)絡(luò)實(shí)現(xiàn)圖像分類實(shí)踐AlexNet網(wǎng)絡(luò)訓(xùn)練循環(huán)迭代數(shù)據(jù),使用for循環(huán)迭代train_loader,將各屬性賦值給i,image,labels,通過網(wǎng)絡(luò)計(jì)算損失值。for

epoch

in

range(epoches):fori,(images,labels)inenumerate(train_loader):images=images.to(device)labels=labels.to(device)output=model(images)#通過model預(yù)測(cè)image

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論