日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 卷积神经网络 >内容正文

卷积神经网络

MATLAB 使用CNN拟合回归模型预测手写数字的旋转角度(卷积神经网络)

發布時間:2025/3/21 卷积神经网络 72 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MATLAB 使用CNN拟合回归模型预测手写数字的旋转角度(卷积神经网络) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習來源自mathworks的官方范例,個人學習使用,在個人項目上可以按照需求變化數據集來實現CNN回歸計算

數據集生成方法可以參考:https://blog.csdn.net/qingfengxd1/article/details/105931988

%% 加載數據 %% 數據集包含手寫數字的合成圖像,以及每幅圖像旋轉的對應角度(以角度為單位)。 %% 使用digitTrain4DArrayData和digitTest4DArrayData將訓練和驗證圖像加載為4D數組。 %% 輸出YTrain和YValidation是以角度為單位的旋轉角度。每個訓練和驗證數據集包含5000張圖像。 [XTrain, ~, Ytrain] = digitTrain4DArrayData; [XValidation, ~, YValidation] = digitTest4DArrayData; %% 隨機顯示20張訓練圖像 numTrainImages = numel(YTrrain); figure; idx = randperm(numTrainImages, 20); for i = 1 : numel(idx)subplot(4, 5, i);imshow(XTrain(:, :, :, idx(i)))drawnow end

%% 數據歸一化處理
%% 當訓練神經網絡時,確保你的數據在網絡的所有階段都是標準化的通常是有幫助的。
%% 歸一化有助于使用梯度下降來穩定和加速網絡訓練。
%% 如果您的數據規模太小,那么損失可能會變成NaN,并且在培訓期間網絡參數可能會出現分歧。
%% 標準化數據的常用方法包括重新標定數據,使其范圍變為[0,1]或使其均值為0,標準差為1。
%{
你可以標準化以下數據:
1、輸入數據。在將預測器輸入到網絡之前對它們進行規范化。在本例中,輸入圖像已經標準化為[0,1]范圍。
2、層輸出。您可以使用批處理規范化層對每個卷積和完全連接層的輸出進行規范化。
3、響應。如果使用批處理規范化層對網絡末端的層輸出進行規范化,則在開始訓練時對網絡的預測進行規范化。
????????如果響應的規模與這些預測非常不同,那么網絡訓練可能無法收斂。
????????如果你的回答沒有得到很好的擴展,那么試著將其標準化,看看網絡培訓是否有所改善。
????????如果在訓練前對響應進行規范化,則必須轉換訓練網絡的預測,以獲得原始響應的預測。
%}

%% 一般來說,數據不必完全標準化。
%% 但是,如果在本例中訓練網絡來預測100*YTrain或YTrain+500而不是YTrain,那么損失就變成NaN,
%% 當訓練開始時,網絡參數就會出現分歧。
%% 即使網絡預測aY + b和網絡預測Y之間的唯一區別是重新調整最終完全連接層的權重和偏差,這些結果仍然會出現。
%% 如果輸入或響應的分布非常不均勻或傾斜,還可以執行非線性轉換(例如,取對數)

%% 繪制響應分布:在分類問題中,輸出是類概率,類概率總是歸一化的。 figure; histogram(YTrain) axis tight ylabel('Counts') xlabel('Rotation Angle')

通常,數據不必完全歸一化。但是,如果在此示例中訓練網絡來預測?100*YTrain?或?YTrain+500?而不是?YTrain,則損失將變為?NaN,并且網絡參數在訓練開始時會發生偏離。即使預測?aY + b?的網絡與預測?Y?的網絡之間的唯一差異是對最終全連接層的權重和偏置的簡單重新縮放,也會出現這些結果。

如果輸入或響應的分布非常不均勻或偏斜,您還可以在訓練網絡之前對數據執行非線性變換(例如,取其對數)。

%% 創建網絡層 %% 第一層定義輸入數據的大小和類型。輸入的圖像大小為28×28×1。創建與訓練圖像大小相同的圖像輸入層。 %% 網絡的中間層定義了網絡的核心架構,大部分計算和學習都在這個架構中進行。 %% 最后一層定義輸出數據的大小和類型。對于回歸問題,全連接層必須先于網絡末端的回歸層。 layers = [imageInputLayer([28 28 1])batchNormalizationLayerreluLayeraveragePooling2dLayer(2, 'Stride', 2)convolution2dLayer(3, 16, 'Padding', 'same')batchNormalizationLayerreluLayeraveragePooling2dLayer(2, 'Stride', 2)convolution2dLayer(3, 32, 'Padding', 'same')batchNormalizationLayerreluLayerconcolution2dLayer(3, 32, 'Padding', 'same')batchNormalizationLayerreluLayerdropoutLayer(0.2)fullyConnectedLayer(1)regressionLayer]; %% 訓練網絡——Options %% Train for 30 epochs 學習率0.001 在20個epoch后降低學習率。 %% 通過指定驗證數據和驗證頻率,監控培訓過程中的網絡準確性。 %% 根據訓練數據對網絡進行訓練,并在訓練過程中定期對驗證數據進行精度計算。 %% 驗證數據不用于更新網絡權重。打開訓練進度圖,并關閉命令窗口輸出。 miniBatchSize = 128; validationFrequency = floor(numel(YTrain) / miniBatchSize); options = trainingOptions('sgdm', ...'MiniBatchSize', miniBatchSize, ...'MaxEpochs', 30, ...'InitialLearnRate', 1e-3, ...'LearnRateSchedule', 'piecewise', ...'LearnRateDropFactor', 0.1, ...'LearnRateDropPeriod', 20, ...'Shuffle', 'every-epoch', ...'ValidationData', {XValidation, YValidation}, ...'ValidationFrequency', validationFrequency, ...'Plots', 'training-progress', ...'Verbose', false); net = trainNetwork(XTrain, YTrain, layer, options)

使用?trainNetwork?創建網絡。如果存在兼容的 GPU,此命令會使用 GPU。否則,trainNetwork?將使用 CPU。在 GPU 上進行訓練需要具有 3.0 或更高計算能力的支持 CUDA? 的 NVIDIA? GPU。

檢查?net?的?Layers?屬性中包含的網絡架構的詳細信息。

net.Layers

基于驗證數據評估準確度來測試網絡性能。使用?predict?預測驗證圖像的旋轉角度。

YPredicted = predict(net,XValidation);

評估性能

通過計算以下值來評估模型性能:

  • 在可接受誤差界限內的預測值的百分比

  • 預測旋轉角度和實際旋轉角度的均方根誤差 (RMSE)

  • 計算預測旋轉角度和實際旋轉角度之間的預測誤差。

    predictionError = YValidation - YPredicted;

    計算在實際角度的可接受誤差界限內的預測值的數量。將閾值設置為 10 度。計算此閾值范圍內的預測值的百分比。

    thr = 10; numCorrect = sum(abs(predictionError) < thr); numValidationImages = numel(YValidation);accuracy = numCorrect/numValidationImages

    使用均方根誤差 (RMSE) 來衡量預測旋轉角度和實際旋轉角度之間的差異。

    squares = predictionError.^2; rmse = sqrt(mean(squares))

    顯示每個數字類的殘差箱線圖

    boxplot?函數需要一個矩陣,其中各個列對應于各個數字類的殘差。

    驗證數據按數字類 0-9 對圖像進行分組,每組包含 500 個樣本。使用?reshape?按數字類對殘差進行分組。

    residualMatrix = reshape(predictionError,500,10);

    residualMatrix?的每列對應于每個數字的殘差。使用?boxplot?(Statistics and Machine Learning Toolbox) 為每個數字創建殘差箱線圖。

    figure boxplot(residualMatrix,...'Labels',{'0','1','2','3','4','5','6','7','8','9'}) xlabel('Digit Class') ylabel('Degrees Error') title('Residuals')

    準確度最高的數字類具有接近于零的均值和很小的方差。

    您可以使用 Image Processing Toolbox 中的函數來擺正數字并將它們顯示在一起。使用?imrotate?(Image Processing Toolbox) 根據預測的旋轉角度旋轉 49 個樣本數字。

    idx = randperm(numValidationImages,49); for i = 1:numel(idx)image = XValidation(:,:,:,idx(i));predictedAngle = YPredicted(idx(i)); imagesRotated(:,:,:,i) = imrotate(image,predictedAngle,'bicubic','crop'); end

    顯示原始數字以及校正旋轉后的數字。您可以使用?montage?(Image Processing Toolbox) 將數字顯示在同一個圖像上。

    figure subplot(1,2,1) montage(XValidation(:,:,:,idx)) title('Original')subplot(1,2,2) montage(imagesRotated) title('Corrected')

    ?

    ?

    總結

    以上是生活随笔為你收集整理的MATLAB 使用CNN拟合回归模型预测手写数字的旋转角度(卷积神经网络)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 久久av免费 | 亚洲国产综合久久 | 污视频免费看 | 亚洲插 | 一级久久久久久久 | 亚洲欧美精品午睡沙发 | jlzzjlzz欧美大全 | 97人人艹| 日韩黄色精品 | aaa亚洲精品 | 日韩在线不卡视频 | 91最新视频 | 午夜三级在线 | 久久久久久9999 | 久草香蕉在线 | 国产白嫩美女无套久久 | 色偷av | 国产理论片 | 亚洲精品lv| 国产良妇出轨视频在线观看 | 日韩精品视频免费看 | 麻豆免费在线观看视频 | 中文一区二区在线 | 99国产精品免费视频 | 一区二区视频在线观看免费 | 亚洲影视在线 | 伊人网五月天 | 国内毛片毛片毛片毛片毛片 | 香蕉大久久 | 素人av在线 | 亚洲精品久久久久久久蜜桃臀 | 不卡一区二区三区四区 | 久久免费视频精品 | 在线艹| 中文天堂| 91精品观看 | 日本涩涩网站 | 亚洲精品小视频 | 高清乱码免费 | 亚洲福利小视频 | 精品国产av无码 | 99ri国产| 亚洲欧美日韩中文字幕在线观看 | 欧美一区二区三区久久精品 | 中文字幕精品一区 | 97伊人超碰 | 国产偷人妻精品一区二区在线 | 神宫寺奈绪一区二区三区 | 一区二区片 | 国产视频中文字幕 | 欧美女优在线 | 少妇脚交调教玩男人的视频 | 91看片免费看 | 人妻丰满熟妇av无码久久洗澡 | 国产精品sm | 欧美极品在线视频 | 网站免费黄色 | 欧美性理论片在线观看片免费 | 欧美中文网 | 欧美黄色小视频 | 欧美 日韩 国产 高清 | 看一级片| av福利在线看 | 青春草av | 日韩一区二区视频在线播放 | 欧美老肥妇做.爰bbww视频 | 日韩中出在线 | 成人91免费| 另类激情 | 蜜臀视频在线观看 | 嫩草伊人久久精品少妇av | 欧美国产一二三区 | 中文字幕在线1 | 五月天黄色网址 | 黄页网址大全免费观看 | 国产对白刺激视频 | 99精品视频一区二区三区 | 国产激情在线看 | 青青草原av在线 | 久久久99精品国产一区二区三区 | 青青草伊人网 | 亚洲AV无码一区二区三区蜜桃 | 欧美四级在线观看 | 国产91丝袜在线播放0 | 日韩视频网址 | 六月综合网 | 毛片天天看 | 秋霞国产精品 | 丁香激情五月 | 色婷婷中文 | 国产女人和拘做受视频免费 | 国产毛片儿 | av一区在线播放 | 中文字幕在线不卡 | 久草蜜桃| 五月天亚洲综合 | 国产人妖一区 | 午夜欧美成人 | 欧美日韩高清在线播放 |