筆記來(lái)源于matlab官網(wǎng)验辞,不足之處還請(qǐng)?zhí)岢觥?/h2>
1.使用預(yù)訓(xùn)練網(wǎng)絡(luò)
1.1加載并查看圖像
? ? 使用imread函數(shù)導(dǎo)入圖像,支持GIF,JPEG,PNG等峭沦,如將png格式的圖像讀入到變量I中。
? ????????????????????????????????????????????????? I = imread('filename.png');
? ? 使用imshow函數(shù)顯示變量中的圖像逃糟。
????????????????????????????????????????????????????imshow(I);
1.2使用alexnet做預(yù)測(cè)(alexnet是基于CNN的模型吼鱼,已經(jīng)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò))
????創(chuàng)建alexnet的副本。
? ? ? ? ? ????????????????????????????????????????? net = alexnetnet;
? ? 使用classify預(yù)訓(xùn)練alexnet網(wǎng)絡(luò)對(duì)圖像img進(jìn)行預(yù)測(cè)绰咽,將預(yù)測(cè)結(jié)果存入變量pred1中菇肃。效果如下圖。
? ??????????????????????????????????????????????????pre1 = classify(net,img);
1.3CNN架構(gòu)
使用deepnet(如1.2中的net)表示深度卷積網(wǎng)絡(luò)取募,通過(guò)Layers使用索引引用變量的屬性來(lái)檢查網(wǎng)絡(luò)的各個(gè)層次:
variable.Property琐谤,效果如下,ly是一個(gè)網(wǎng)絡(luò)層數(shù)組:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ly=deepnet.Layers
可以使用常規(guī)的matlab數(shù)組檢索單個(gè)圖層玩敏,如將網(wǎng)絡(luò)的第一個(gè)(輸出)層提取到inlayer變量中:
? ??????????????????????????????????????????????????????????????????inlayer = ly(1);
使用屬性InputSize可以得到圖層的輸入層所需要的圖像大小斗忌,如提取第一層(存儲(chǔ)在變量inlayer中)的圖像大小屬性,并將結(jié)果存儲(chǔ)在變量insz:
? ??????????????????????????????????????????????????????????insz = inlayer.InputSize;
提取輸出層到變量outlayer中旺聚,因?yàn)閘ayer共25層织阳,所以:
? ??????????????????????????????????????????????????????????outlayer = ly(25);
輸出層屬性ClassName,用于給出網(wǎng)絡(luò)被訓(xùn)練預(yù)測(cè)的類別的名稱砰粹,如:
? ??????????????????????????????????????categorynames = outlayer.ClassNames唧躲;