欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決Alexnet訓練模型在每個epoch中準確率和loss都會一升一降問題

 更新時間:2020年06月17日 10:15:05   作者:菜田的守望者  
這篇文章主要介紹了解決Alexnet訓練模型在每個epoch中準確率和loss都會一升一降問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

遇到的問題

當時自己在使用Alexnet訓練圖像分類問題時,會出現(xiàn)損失在一個epoch中增加,換做下一個epoch時loss會驟然降低,一開始這個問題沒有一點頭緒,我數(shù)據(jù)也打亂了,使用的是tf.train.shuffle_batch

在capacity中設(shè)置一個值,比如是1000吧,每次取一千個數(shù)據(jù)后將這一千個數(shù)據(jù)打亂,本次使用的數(shù)據(jù)集就是每個種類1000多,而我加載數(shù)據(jù)時是一類一類加載的,這就造成了每一批次的開始可以跟前一類數(shù)據(jù)做打亂處理,但是在中間數(shù)據(jù)并不能達到充分的shuffle

解決問題

在加載數(shù)據(jù)集的時候用numpy中的shuffle將數(shù)據(jù)集充分的打亂后在讀入tfrecord中,之后讀取的時候使用tf.tain.shuffle_batch和使用tf.train.batch就沒有區(qū)別了。另外capacity這個數(shù)值不益設(shè)置過大,會對自己的電腦造成壓力。

補充知識:MATLAB中使用AlexNet、VGG、GoogLeNet進行遷移學習

直接貼代碼,具體用法見注釋:

clc;clear;

net = alexnet; %加載在ImageNet上預訓練的網(wǎng)絡(luò)模型
imageInputSize = [227 227 3];
%加載圖像
allImages = imageDatastore('.\data227Alexnet',...
 'IncludeSubfolders',true,...
 'LabelSource','foldernames');
 %劃分訓練集和驗證集
 [training_set,validation_set] = splitEachLabel(allImages,0.7,'randomized');
 %由于原始網(wǎng)絡(luò)全連接層1000個輸出,顯然不適用于我們的分類任務(wù),因此在這里替換
layersTransfer = net.Layers(1:end-3);
categories(training_set.Labels)
numClasses = numel(categories(training_set.Labels));
%新的網(wǎng)絡(luò)
layers = [
 layersTransfer
 fullyConnectedLayer(numClasses,'Name', 'fc','WeightLearnRateFactor',1,'BiasLearnRateFactor',1)
 softmaxLayer('Name', 'softmax')
 classificationLayer('Name', 'classOutput')];

lgraph = layerGraph(layers);
plot(lgraph)
%對數(shù)據(jù)集進行擴增
augmented_training_set = augmentedImageSource(imageInputSize,training_set);

opts = trainingOptions('adam', ...
 'MiniBatchSize', 32,... % mini batch size, limited by GPU RAM, default 100 on Titan, 500 on P6000
 'InitialLearnRate', 1e-4,... % fixed learning rate
 'LearnRateSchedule','piecewise',...
 'LearnRateDropFactor',0.25,...
 'LearnRateDropPeriod',10,...
 'L2Regularization', 1e-4,... constraint
 'MaxEpochs',20,..
 'ExecutionEnvironment', 'gpu',...
 'ValidationData', validation_set,...
 'ValidationFrequency',80,...
 'ValidationPatience',8,...
 'Plots', 'training-progress')

net = trainNetwork(augmented_training_set, lgraph, opts);

save Alex_Public_32.mat net

[predLabels,predScores] = classify(net, validation_set);
plotconfusion(validation_set.Labels, predLabels)
PerItemAccuracy = mean(predLabels == validation_set.Labels);
title(['overall per image accuracy ',num2str(round(100*PerItemAccuracy)),'%'])

MATLAB中訓練神經(jīng)網(wǎng)絡(luò)一個非常大的優(yōu)勢就是訓練過程中各項指標的可視化,并且最終也會生成一個混淆矩陣顯示驗證集的結(jié)果。

以上這篇解決Alexnet訓練模型在每個epoch中準確率和loss都會一升一降問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python實現(xiàn)pptx批量向PPT中插入圖片

    python實現(xiàn)pptx批量向PPT中插入圖片

    大家好,本篇文章主要講的是python實現(xiàn)pptx批量向PPT中插入圖片,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • pycharm中選中一個單詞替換所有重復單詞的實現(xiàn)方法

    pycharm中選中一個單詞替換所有重復單詞的實現(xiàn)方法

    這篇文章主要介紹了pycharm中選中一個單詞替換所有重復單詞的實現(xiàn)方法,類似于sublime 里的ctrl+D功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-11-11
  • python中的變量如何開辟內(nèi)存

    python中的變量如何開辟內(nèi)存

    python中的變量如何開辟內(nèi)存?今天小編就為大家介紹一下python中變量開辟內(nèi)存的方法。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • python ftplib模塊使用代碼實例

    python ftplib模塊使用代碼實例

    這篇文章主要介紹了python ftplib模塊使用代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • python標準庫sys和OS的函數(shù)使用方法與實例詳解

    python標準庫sys和OS的函數(shù)使用方法與實例詳解

    這篇文章主要介紹了python標準庫sys和OS的函數(shù)使用方法與實例詳解,需要的朋友可以參考下
    2020-02-02
  • python str()如何將參數(shù)轉(zhuǎn)換為字符串類型

    python str()如何將參數(shù)轉(zhuǎn)換為字符串類型

    這篇文章主要介紹了python str()如何將參數(shù)轉(zhuǎn)換為字符串類型的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • python常用的時間模塊之datetime模塊示例詳解

    python常用的時間模塊之datetime模塊示例詳解

    這篇文章主要介紹了python常用的時間模塊之datetime模塊,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • 用python寫的一個wordpress的采集程序

    用python寫的一個wordpress的采集程序

    在學習python的過程中,經(jīng)過不斷的嘗試及努力,終于完成了第一個像樣的python程序,雖然還有很多需要優(yōu)化的地方,但是目前基本上實現(xiàn)了我所要求的功能,需要的朋友可以參考下
    2016-02-02
  • Python3多線程詳解

    Python3多線程詳解

    使用多線程,可以同時進行多項任務(wù),可以使用戶界面更友好,還可以后臺執(zhí)行某些用時長的任務(wù),同時具有易于通信的優(yōu)點。python3中多線程的實現(xiàn)使用了threading模塊,它允許同一進程中運行多個線程,本文介紹的非常詳細,,需要的朋友可以參考下
    2023-05-05
  • 從局部變量和全局變量開始全面解析Python中變量的作用域

    從局部變量和全局變量開始全面解析Python中變量的作用域

    無論是以類為基礎(chǔ)的面相對象編程,還是單純函數(shù)內(nèi)部變量的定義,變量的作用域始終是Python學習中一個必須理解掌握的環(huán)節(jié),下面我們從局部變量和全局變量開始全面解析Python中變量的作用域,需要的朋友可以參考下
    2016-06-06

最新評論