<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【圖像識別】基于Matlab的遷移學(xué)習(xí)的圖像分類案例

          共 2779字,需瀏覽 6分鐘

           ·

          2021-04-24 21:21

          大家好
          我們今天來講一講如何
          用Matlab做一個新的遷移學(xué)習(xí)
          您可能需要的基礎(chǔ)知識
          Matlab編程Deep learning的基礎(chǔ)知識

          一、什么是遷移學(xué)習(xí)?

          以圖像識別為例。如果你想構(gòu)建一個神經(jīng)網(wǎng)絡(luò),讓它能夠識別馬匹,但是手上又沒有任何公開的算法可以完成這項任務(wù)。這時,借助遷移學(xué)習(xí),你可以從一個原本是用來識別其它動物的現(xiàn)成的卷積神經(jīng)網(wǎng)絡(luò)(CNN)入手,對其進行調(diào)整并訓(xùn)練它識別馬匹。
          深度學(xué)習(xí)應(yīng)用中常常用到遷移學(xué)習(xí)??梢圆捎妙A(yù)訓(xùn)練的網(wǎng)絡(luò),基于它學(xué)習(xí)新任務(wù)。與使用隨機初始化的權(quán)重從頭訓(xùn)練網(wǎng)絡(luò)相比,通過遷移學(xué)習(xí)微調(diào)網(wǎng)絡(luò)要更快更簡單。我們可以使用較少數(shù)量的訓(xùn)練圖像快速地將已學(xué)習(xí)的特征遷移到新任務(wù)。

          二、網(wǎng)絡(luò)的創(chuàng)建和數(shù)據(jù)的導(dǎo)入

          加載數(shù)據(jù)

          解壓縮新圖像并加載這些圖像作為圖像數(shù)據(jù)存儲。imageDatastore 根據(jù)文件夾名稱自動標(biāo)注圖像,并將數(shù)據(jù)存儲為 ImageDatastore 對象。通過圖像數(shù)據(jù)存儲可以存儲大圖像數(shù)據(jù),包括無法放入內(nèi)存的數(shù)據(jù),并在卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程中高效分批讀取圖像。
          unzip('MerchData.zip');imds = imageDatastore('MerchData', ...    'IncludeSubfolders',true, ...    'LabelSource','foldernames');
          將數(shù)據(jù)劃分為訓(xùn)練數(shù)據(jù)集和驗證數(shù)據(jù)集。 70% 的圖像用于訓(xùn)練,30% 的圖像用于驗證。splitEachLabel 將 images 數(shù)據(jù)存儲拆分為兩個新的數(shù)據(jù)存儲。
          [imdsTrain,imdsValidation] = splitEachLabel(imds,0.7,'randomized');

          這個非常小的數(shù)據(jù)集現(xiàn)在包含 55 個訓(xùn)練圖像和 20 個驗證圖像。

          numTrainImages = numel(imdsTrain.Labels);idx = randperm(numTrainImages,16);figurefor i = 1:16    subplot(4,4,i)    I = readimage(imdsTrain,idx(i));    imshow(I)end

          加載預(yù)訓(xùn)練網(wǎng)絡(luò)

          加載預(yù)訓(xùn)練的 AlexNet 神經(jīng)網(wǎng)絡(luò)。如果未安裝 Deep Learning Toolbox? Model for AlexNet Network,則軟件會提供下載鏈接。AlexNet 已基于超過一百萬個圖像進行訓(xùn)練,可以將圖像分為 1000 個對象類別(例如鍵盤、鼠標(biāo)、鉛筆和多種動物)。因此,該模型已基于大量圖像學(xué)習(xí)了豐富的特征表示。
          net = alexnet;

          使用 analyzeNetwork 可以交互可視方式呈現(xiàn)網(wǎng)絡(luò)架構(gòu)以及有關(guān)網(wǎng)絡(luò)層的詳細信息。

          analyzeNetwork(net)

          第一層(圖像輸入層)需要大小為 227×227×3 的輸入圖像

          其中 3 是顏色通道數(shù)

          inputSize = 1×3   227   227     3

          三、網(wǎng)絡(luò)的訓(xùn)練

          替換最終層

          預(yù)訓(xùn)練網(wǎng)絡(luò) net 的最后三層針對 1000 個類進行配置。必須針對新分類問題微調(diào)這三個層。從預(yù)訓(xùn)練網(wǎng)絡(luò)中提取除最后三層之外的所有層。
          layersTransfer = net.Layers(1:end-3);
          通過將最后三層替換為全連接層、softmax 層和分類輸出層,將層遷移到新分類任務(wù)。根據(jù)新數(shù)據(jù)指定新的全連接層的選項。將全連接層設(shè)置為大小與新數(shù)據(jù)中的類數(shù)相同。要使新層中的學(xué)習(xí)速度快于遷移的層,請增大全連接層的 WeightLearnRateFactor 和 BiasLearnRateFactor 值。
          numClasses = numel(categories(imdsTrain.Labels))numClasses = 5
          layers = [    layersTransfer    fullyConnectedLayer(numClasses,'WeightLearnRateFactor',20,'BiasLearnRateFactor',20)    softmaxLayer    classificationLayer];

          訓(xùn)練網(wǎng)絡(luò)

          網(wǎng)絡(luò)要求輸入圖像的大小為 227×227×3,但圖像數(shù)據(jù)存儲中的圖像具有不同大小。使用增強的圖像數(shù)據(jù)存儲可自動調(diào)整訓(xùn)練圖像的大小。指定要對訓(xùn)練圖像額外執(zhí)行的增強操作:沿垂直軸隨機翻轉(zhuǎn)訓(xùn)練圖像,以及在水平和垂直方向上隨機平移訓(xùn)練圖像最多 30 個像素。數(shù)據(jù)增強有助于防止網(wǎng)絡(luò)過擬合和記憶訓(xùn)練圖像的具體細節(jié)。
          pixelRange = [-30 30];imageAugmenter = imageDataAugmenter( ...    'RandXReflection',true, ...    'RandXTranslation',pixelRange, ...    'RandYTranslation',pixelRange);augimdsTrain = augmentedImageDatastore(inputSize(1:2),imdsTrain, ...    'DataAugmentation',imageAugmenter);

          對驗證圖像進行分類

          使用經(jīng)過微調(diào)的網(wǎng)絡(luò)對驗證圖像進行分類

          [YPred,scores] = classify(netTransfer,augimdsValidation);

          顯示四個示例驗證圖像及預(yù)測的標(biāo)簽。

          idx = randperm(numel(imdsValidation.Files),4);figurefor i = 1:4    subplot(2,2,i)    I = readimage(imdsValidation,idx(i));    imshow(I)    label = YPred(idx(i));    title(string(label));end

          計算針對驗證集的分類準(zhǔn)確度。準(zhǔn)確度是網(wǎng)絡(luò)預(yù)測正確的標(biāo)簽的比例

          YValidation = imdsValidation.Labels;accuracy = mean(YPred == YValidation)
          accuracy = 1



          今天你學(xué)廢了嗎???

          來源:渝西圖像練習(xí)生

           End 


          聲明:部分內(nèi)容來源于網(wǎng)絡(luò),僅供讀者學(xué)術(shù)交流之目的,文章版權(quán)歸原作者所有。如有不妥,請聯(lián)系刪除。


          瀏覽 130
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  丁香婷婷色五月激情深爱 | 这里有精品视频 | 欧美激情a级成人网站 | 国产女女百合在线播放 | 五月丁香乱能高清 |