京東金融大數據競賽豬臉識別(7)- 識別方法之三

Matlab提供了最簡單的多分類功能,兩個函數(trainSoftmaxLayer和net)就能完成。即先對對訓練圖像集構造softmax層,然後對測試圖像進行分類。這兩個函數可以在訓練圖像和測試圖像上完成分類的主要功能。代碼如下:

clear;
%加載訓練圖像特徵
load('JDPig_mlhmslbp_spyr.mat');
m = numel(classe_name);
n = length(y);
label = []
%one-hot編碼
for i=1:n
    label(:,i) = zeros(m,1);
    label(y(i),i) = 1;
end
%加載測試圖像特徵
testImg  = load('JDTest_mlhmslbp_spyr.mat');
if ~exist('resSoftMaxMlhms.mat')    
    %訓練softmax層
    net = trainSoftmaxLayer(X,label);
        %獲取測試圖像類別
    Yp = net(testImg.X);
    save('resSoftMaxMlhms.mat','Yp','net');
else
    load('resSoftMaxMlhms.mat','Yp','net');
end
%構造圖像、類別、識別概率的table型變量
load('testName.mat','imgName');
for i=1:length(Yp)
    for j=1:m
        indImg((i-1)*m+j) = imgName(i);
        plabel((i-1)*m+j)  = j;
        prob((i-1)*m+j)   = Yp(j,i);
    end
end
T = table(indImg',plabel',prob');
%將各測試圖像對於各類別概率存爲csv文件
writetable(T,'myData.csv');
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章