国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Matlab搭建AlexNet實(shí)現(xiàn)手寫(xiě)數(shù)字識(shí)別

這篇具有很好參考價(jià)值的文章主要介紹了Matlab搭建AlexNet實(shí)現(xiàn)手寫(xiě)數(shù)字識(shí)別。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Matlab搭建AlexNet實(shí)現(xiàn)手寫(xiě)數(shù)字識(shí)別

個(gè)人博客地址

環(huán)境

  • Matlab 2020a
  • Windows10

內(nèi)容

使用Matlab對(duì)MNIST數(shù)據(jù)集進(jìn)行預(yù)處理,搭建卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,實(shí)現(xiàn)識(shí)別手寫(xiě)數(shù)字的任務(wù)。在訓(xùn)練過(guò)程中,每隔30個(gè)batch輸出一次模型在驗(yàn)證集上的準(zhǔn)確率和損失值。在訓(xùn)練結(jié)束后會(huì)輸出驗(yàn)證集中每個(gè)數(shù)字的真實(shí)值、網(wǎng)絡(luò)預(yù)測(cè)值和判定概率,并給出總的識(shí)別準(zhǔn)確率。

步驟

準(zhǔn)備MNIST數(shù)據(jù)集

為了方便進(jìn)行測(cè)試,本次只選用500張MNIST數(shù)據(jù)集,每個(gè)數(shù)字50張。

下載數(shù)據(jù)集后并解壓,為每個(gè)數(shù)字創(chuàng)建單獨(dú)文件夾并將該數(shù)字的所有圖片放在對(duì)應(yīng)的文件夾下,如圖1所示。
數(shù)據(jù)集下載地址 提取碼:af6n
Matlab搭建AlexNet實(shí)現(xiàn)手寫(xiě)數(shù)字識(shí)別

手動(dòng)分類(lèi)結(jié)束后每個(gè)文件夾中應(yīng)有50張圖片。

數(shù)據(jù)預(yù)處理

% 加載數(shù)據(jù)集
imds = imageDatastore(...
    "./data",...
    'IncludeSubfolders', true,...
    'LabelSource','foldernames');

使用imageDatastore加載數(shù)據(jù)集。第一個(gè)參數(shù)填寫(xiě)數(shù)據(jù)集路徑。由于本次實(shí)驗(yàn)data目錄下含有子文件夾所以IncludeSubfolders需要指定為true。LabelSource表示標(biāo)簽來(lái)源,這里使用文件夾名字來(lái)代表標(biāo)簽。

  ImageDatastore - 屬性:

                       Files: {
                              'D:\data\0\0_1.bmp';
                              'D:\data\0\0_10.bmp';
                              'D:\data\0\0_11.bmp'
                               ... and 497 more
                              }
                     Folders: {
                              'D:\data'
                              }
                      Labels: [0; 0; 0 ... and 497 more categorical]
    AlternateFileSystemRoots: {}
                    ReadSize: 1
      SupportedOutputFormats: [1×5 string]
         DefaultOutputFormat: "png"
                     ReadFcn: @readDatastoreImage

上面內(nèi)容為執(zhí)行imageDatastore后返回變量的屬性??梢钥闯鲆呀?jīng)成功將數(shù)據(jù)集讀入并對(duì)每張圖片進(jìn)行l(wèi)abel處理。

由于每個(gè)數(shù)字有50張圖像,因此本次實(shí)驗(yàn)每個(gè)數(shù)字選用30張進(jìn)行訓(xùn)練,另20張進(jìn)行驗(yàn)證。使用splitEachLabel進(jìn)行劃分,得到訓(xùn)練集和驗(yàn)證集。

% 數(shù)據(jù)打亂
imds = shuffle(imds);

% 劃分訓(xùn)練集和驗(yàn)證集。每一個(gè)類(lèi)別訓(xùn)練集有30個(gè),驗(yàn)證集有20個(gè)
[imdsTrain,imdsValidation] = splitEachLabel(imds, 30);

使用shuffle進(jìn)行數(shù)據(jù)打亂。得到的imdsTrain和imdsValidation分別有300和200張圖片。

% 將訓(xùn)練集與驗(yàn)證集中圖像的大小調(diào)整成與輸入層的大小相同
augimdsTrain = augmentedImageDatastore([28 28],imdsTrain);
augimdsValidation = augmentedImageDatastore([28 28],imdsValidation);

定義網(wǎng)絡(luò)模型

% 構(gòu)建alexnet卷積網(wǎng)絡(luò) 
alexnet = [
    imageInputLayer([56,56,1], 'Name', 'Input')
    convolution2dLayer([11,11],48,'Padding','same','Stride',4, 'Name', 'Conv_1')
    batchNormalizationLayer('Name', 'BN_1')
    reluLayer('Name', 'Relu_1')
    maxPooling2dLayer(3,'Padding','same','Stride',2, 'Name', 'MaxPooling_1')
    convolution2dLayer([5,5],128,'Padding',2,'Stride',1, 'Name', 'Conv_2')
    batchNormalizationLayer('Name', 'BN_2')
    reluLayer('Name', 'Relu_2')
    maxPooling2dLayer(3,'Padding','same','Stride',2, 'Name', 'MaxPooling_2')
    convolution2dLayer([3 3],192,'Padding',1,'Stride',1, 'Name', 'Conv_3')
    batchNormalizationLayer('Name', 'BN_3')
    reluLayer('Name', 'Relu_3')
    convolution2dLayer([3 3],192,'Padding',1,'Stride',1, 'Name', 'Conv_4')
    batchNormalizationLayer('Name', 'BN_4')
    reluLayer('Name', 'Relu_4')
    convolution2dLayer([3 3],128,'Stride',1,'Padding',1, 'Name', 'Conv_5')
    batchNormalizationLayer('Name', 'BN_5')
    reluLayer('Name', 'Relu_5')
    maxPooling2dLayer(3,'Padding','same','Stride',2, 'Name', 'MaxPooling_3')
    fullyConnectedLayer(4096, 'Name', 'FC_1')
    reluLayer('Name', 'Relu_6')
    fullyConnectedLayer(4096, 'Name', 'FC_2')
    reluLayer('Name', 'Relu_7')
    fullyConnectedLayer(10, 'Name', 'FC_3')    % 將新的全連接層的輸出設(shè)置為訓(xùn)練數(shù)據(jù)中的種類(lèi)
    softmaxLayer('Name', 'Softmax')            % 添加新的Softmax層
    classificationLayer('Name', 'Output') ];   % 添加新的分類(lèi)層

使用上面的代碼即可構(gòu)建AlexNet模型。

% 對(duì)構(gòu)建的網(wǎng)絡(luò)進(jìn)行可視化分析
lgraph = layerGraph(mynet);
analyzeNetwork(lgraph)

Matlab搭建AlexNet實(shí)現(xiàn)手寫(xiě)數(shù)字識(shí)別

定義訓(xùn)練超參數(shù)

% 配置訓(xùn)練選項(xiàng)   
options = trainingOptions('sgdm', ...
    'InitialLearnRate',0.001, ...    
    'MaxEpochs',100, ...               
    'Shuffle','every-epoch', ...
    'ValidationData',augimdsValidation, ...
    'ValidationFrequency',30, ...
    'Verbose',true, ...
    'Plots','training-progress'); 

本次實(shí)驗(yàn)選用sgdm作為優(yōu)化器,初始學(xué)習(xí)率設(shè)置為0.001,最大迭代次數(shù)為100,每次迭代都會(huì)打亂數(shù)據(jù),每隔30個(gè)batch進(jìn)行一次驗(yàn)證。

網(wǎng)絡(luò)訓(xùn)練和預(yù)測(cè)

% 對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練
net = trainNetwork(augimdsTrain, mynet, options); 

% 將訓(xùn)練好的網(wǎng)絡(luò)用于對(duì)新的輸入圖像進(jìn)行分類(lèi),得到預(yù)測(cè)結(jié)果和判定概率
[YPred, err] = classify(net, augimdsValidation);

其中,YPred是存放網(wǎng)絡(luò)對(duì)驗(yàn)證集預(yù)測(cè)結(jié)果的數(shù)組,err存放著每個(gè)數(shù)字的判定概率。

Matlab搭建AlexNet實(shí)現(xiàn)手寫(xiě)數(shù)字識(shí)別

% 打印真實(shí)數(shù)字、預(yù)測(cè)數(shù)字、判定概率和準(zhǔn)確率
YValidation = imdsValidation.Labels;
for i=1:200
fprintf("真實(shí)數(shù)字:%d  預(yù)測(cè)數(shù)字:%d", double(YValidation(i,1))-1, double(YPred(i, 1))-1);
fprintf("  判定概率:%f\n", max(err(i, :)));
end

運(yùn)行上面代碼即可打印相關(guān)結(jié)果。

... ...
真實(shí)數(shù)字:4  預(yù)測(cè)數(shù)字:4  判定概率:0.814434
真實(shí)數(shù)字:0  預(yù)測(cè)數(shù)字:0  判定概率:0.657829
真實(shí)數(shù)字:8  預(yù)測(cè)數(shù)字:8  判定概率:0.874560
真實(shí)數(shù)字:0  預(yù)測(cè)數(shù)字:0  判定概率:0.988826
真實(shí)數(shù)字:6  預(yù)測(cè)數(shù)字:6  判定概率:0.970034
... ...
真實(shí)數(shù)字:5  預(yù)測(cè)數(shù)字:5  判定概率:0.806220
真實(shí)數(shù)字:4  預(yù)測(cè)數(shù)字:4  判定概率:0.938233
真實(shí)數(shù)字:7  預(yù)測(cè)數(shù)字:7  判定概率:0.906994
真實(shí)數(shù)字:7  預(yù)測(cè)數(shù)字:7  判定概率:0.837794
真實(shí)數(shù)字:6  預(yù)測(cè)數(shù)字:6  判定概率:0.951572
真實(shí)數(shù)字:6  預(yù)測(cè)數(shù)字:1  判定概率:0.415834
真實(shí)數(shù)字:5  預(yù)測(cè)數(shù)字:5  判定概率:0.789031
真實(shí)數(shù)字:2  預(yù)測(cè)數(shù)字:2  判定概率:0.363526
真實(shí)數(shù)字:7  預(yù)測(cè)數(shù)字:7  判定概率:0.930049

準(zhǔn)確率:0.880000

代碼下載

GitHub下載文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-454809.html

到了這里,關(guān)于Matlab搭建AlexNet實(shí)現(xiàn)手寫(xiě)數(shù)字識(shí)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • CNN實(shí)現(xiàn)手寫(xiě)數(shù)字識(shí)別(Pytorch)

    CNN實(shí)現(xiàn)手寫(xiě)數(shù)字識(shí)別(Pytorch)

    CNN(卷積神經(jīng)網(wǎng)絡(luò))主要包括卷積層、池化層和全連接層。輸入數(shù)據(jù)經(jīng)過(guò)多個(gè)卷積層和池化層提取圖片信息后,最后經(jīng)過(guò)若干個(gè)全連接層獲得最終的輸出。 CNN的實(shí)現(xiàn)主要包括以下步驟: 數(shù)據(jù)加載與預(yù)處理 模型搭建 定義損失函數(shù)、優(yōu)化器 模型訓(xùn)練 模型測(cè)試 以下基于Pytorch框

    2024年02月03日
    瀏覽(24)
  • 深度學(xué)習(xí)實(shí)驗(yàn):Softmax實(shí)現(xiàn)手寫(xiě)數(shù)字識(shí)別

    深度學(xué)習(xí)實(shí)驗(yàn):Softmax實(shí)現(xiàn)手寫(xiě)數(shù)字識(shí)別

    文章相關(guān)知識(shí)點(diǎn):???????AI遮天傳 DL-回歸與分類(lèi)_老師我作業(yè)忘帶了的博客-CSDN博客 ? MNIST數(shù)據(jù)集 ? MNIST手寫(xiě)數(shù)字?jǐn)?shù)據(jù)集是機(jī)器學(xué)習(xí)領(lǐng)域中廣泛使用的圖像分類(lèi)數(shù)據(jù)集。它包含60,000個(gè)訓(xùn)練樣本和10,000個(gè)測(cè)試樣本。這些數(shù)字已進(jìn)行尺寸規(guī)格化,并在固定尺寸的圖像中居中

    2023年04月08日
    瀏覽(23)
  • FPGA實(shí)現(xiàn)mnist手寫(xiě)數(shù)字識(shí)別(軟件部分)

    FPGA實(shí)現(xiàn)mnist手寫(xiě)數(shù)字識(shí)別(軟件部分)

    使用的環(huán)境:tf1.12,具體配置見(jiàn)here: 首先打開(kāi)環(huán)境tf1.12,,再安裝以下的包: opencv 在這里下載“l(fā)inux-64/opencv3-3.1.0-py36_0.tar.bz2”,通過(guò)共享文件夾copy到download文件夾中,在文件夾下打開(kāi)終端,輸入以下命令進(jìn)行安裝: matplotlib(時(shí)刻注意是py36) Pillow(貌似不用了,上面已經(jīng)安

    2023年04月15日
    瀏覽(28)
  • 用PyTorch實(shí)現(xiàn)MNIST手寫(xiě)數(shù)字識(shí)別(最新,非常詳細(xì))

    用PyTorch實(shí)現(xiàn)MNIST手寫(xiě)數(shù)字識(shí)別(最新,非常詳細(xì))

    本文基于 PyTorch 框架,采用 CNN卷積神經(jīng)網(wǎng)絡(luò) 實(shí)現(xiàn) MNIST 手寫(xiě)數(shù)字識(shí)別,僅在 CPU 上運(yùn)行。 已分別實(shí)現(xiàn)使用Linear純線(xiàn)性層、CNN卷積神經(jīng)網(wǎng)絡(luò)、Inception網(wǎng)絡(luò)、和Residual殘差網(wǎng)絡(luò)四種結(jié)構(gòu)對(duì)MNIST數(shù)據(jù)集進(jìn)行手寫(xiě)數(shù)字識(shí)別,并對(duì)其識(shí)別準(zhǔn)確率進(jìn)行比較分析。(另外三種還未發(fā)布) 看完

    2024年02月06日
    瀏覽(25)
  • CNN卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)手寫(xiě)數(shù)字識(shí)別(基于tensorflow)

    CNN卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)手寫(xiě)數(shù)字識(shí)別(基于tensorflow)

    卷積網(wǎng)絡(luò)的 核心思想 是將: 局部感受野 權(quán)值共享(或者權(quán)值復(fù)制) 時(shí)間或空間亞采樣 卷積神經(jīng)網(wǎng)絡(luò) (Convolutional Neural Networks,簡(jiǎn)稱(chēng): CNN )是深度學(xué)習(xí)當(dāng)中一個(gè)非常重要的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。它主要用于用在 圖像圖片處理 , 視頻處理 , 音頻處理 以及 自然語(yǔ)言處理 等等。

    2024年02月11日
    瀏覽(23)
  • 卷積神經(jīng)網(wǎng)絡(luò)(CNN)入門(mén):使用Python實(shí)現(xiàn)手寫(xiě)數(shù)字識(shí)別

    在上一篇文章中,我們介紹了如何使用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的前饋神經(jīng)網(wǎng)絡(luò)。本文將重點(diǎn)介紹卷積神經(jīng)網(wǎng)絡(luò)(CNN),這是一種在計(jì)算機(jī)視覺(jué)任務(wù)中表現(xiàn)優(yōu)異的深度學(xué)習(xí)模型。我們將從卷積神經(jīng)網(wǎng)絡(luò)的基本原理開(kāi)始,介紹卷積層、池化層和全連接層等概念,然后使用Python和Keras庫(kù)

    2023年04月15日
    瀏覽(22)
  • 深度學(xué)習(xí):使用卷積神經(jīng)網(wǎng)絡(luò)CNN實(shí)現(xiàn)MNIST手寫(xiě)數(shù)字識(shí)別

    深度學(xué)習(xí):使用卷積神經(jīng)網(wǎng)絡(luò)CNN實(shí)現(xiàn)MNIST手寫(xiě)數(shù)字識(shí)別

    本項(xiàng)目基于pytorch構(gòu)建了一個(gè)深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)包含卷積層、池化層、全連接層,通過(guò)此網(wǎng)絡(luò)實(shí)現(xiàn)對(duì)MINST數(shù)據(jù)集手寫(xiě)數(shù)字的識(shí)別,通過(guò)本項(xiàng)目代碼,從原理上理解手寫(xiě)數(shù)字識(shí)別的全過(guò)程,包括反向傳播,梯度下降等。 卷積神經(jīng)網(wǎng)絡(luò)是一種多層、前饋型神經(jīng)網(wǎng)絡(luò)。從功能上

    2024年02月13日
    瀏覽(20)
  • 【Unity6.0+AI】Sentis加載模型識(shí)別手寫(xiě)數(shù)字案例實(shí)現(xiàn)

    【Unity6.0+AI】Sentis加載模型識(shí)別手寫(xiě)數(shù)字案例實(shí)現(xiàn)

    按照國(guó)際慣例,看效果: 自己在PS中繪制黑底白字手寫(xiě)字體,導(dǎo)出jpg,尺寸28*28! 素材設(shè)置 準(zhǔn)備工作:從 ONNX Model Zoo 下載手寫(xiě)識(shí)別 ONNX 模型文件 ?【下載模型】MNIST 手寫(xiě)數(shù)字識(shí)別模型 mnist-1

    2024年02月04日
    瀏覽(20)
  • 入門(mén)深度學(xué)習(xí)——基于全連接神經(jīng)網(wǎng)絡(luò)的手寫(xiě)數(shù)字識(shí)別案例(python代碼實(shí)現(xiàn))

    入門(mén)深度學(xué)習(xí)——基于全連接神經(jīng)網(wǎng)絡(luò)的手寫(xiě)數(shù)字識(shí)別案例(python代碼實(shí)現(xiàn))

    1.1 問(wèn)題導(dǎo)入 如圖所示,數(shù)字五的圖片作為輸入,layer01層為輸入層,layer02層為隱藏層,找出每列最大值對(duì)應(yīng)索引為輸出層。根據(jù)下圖給出的網(wǎng)絡(luò)結(jié)構(gòu)搭建本案例用到的全連接神經(jīng)網(wǎng)絡(luò) 1.2 手寫(xiě)字?jǐn)?shù)據(jù)集MINST 如圖所示,MNIST數(shù)據(jù)集是機(jī)器學(xué)習(xí)領(lǐng)域中非常經(jīng)典的一個(gè)數(shù)據(jù)集,由6

    2024年02月03日
    瀏覽(25)
  • (九)人工智能應(yīng)用--深度學(xué)習(xí)原理與實(shí)戰(zhàn)--前饋神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)MNST手寫(xiě)數(shù)字識(shí)別

    (九)人工智能應(yīng)用--深度學(xué)習(xí)原理與實(shí)戰(zhàn)--前饋神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)MNST手寫(xiě)數(shù)字識(shí)別

    目標(biāo): 識(shí)別手寫(xiě)體的數(shù)字,如圖所示: 學(xué)習(xí)內(nèi)容: 1、掌握MNIST數(shù)據(jù)集的加載和查看方法 2、熟練掌握Keras建立前饋神經(jīng)網(wǎng)絡(luò)的步驟【重點(diǎn)】 3、掌握模型的編譯及擬合方法的使用,理解參數(shù)含義【重點(diǎn)】 4、掌握模型的評(píng)估方法 5、掌握模型的預(yù)測(cè)方法 6、掌握自定義圖片的處理與

    2024年02月13日
    瀏覽(39)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包