Advertisement
Guest User

1111111111111111111111

a guest
Oct 13th, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 2.12 KB | None | 0 0
  1. 20191014初步深度學習網路
  2. clear
  3. folder=fullfile(pwd,'newg')%目前資料夾名稱
  4. %檔案讀取
  5. imgs=imageDatastore(folder,...
  6.     "IncludeSubfolders",true,"LabelSource",...
  7.     "foldernames","FileExtensions",{'.jpg','.png','.jfif','.svg','.jpeg'})
  8.  
  9. 檔案讀取
  10. N=length(imgs.Files)
  11. for i=1:N
  12.     img=imread(imgs.Files{i}); %讀取照片
  13.     [m,n,k]=size(img);%取得照片長寬顏色
  14. end
  15. idx=randperm(N);
  16. for i = 1:16
  17.     subplot(4,4,i)
  18.     img=imread(imgs.Files{idx(i)}); %讀取任意照片
  19.     imshow(img)%顯示照片
  20. end
  21. labelCOunt = countEachLabel(imgs)
  22.  
  23. numTrainFIles=0.7;%70%的資料
  24. [Train,Test] = splitEachLabel(imgs,numTrainFIles,'randomized');
  25.  
  26. labelTrainCount = countEachLabel(Train)%顯示統計Training類別數目
  27. labelTestCount = countEachLabel(Test)%顯示統計TEST類別數目
  28.  
  29. 網路模型建立
  30. numofprediction=3;
  31. layers = [
  32.     imageInputLayer([m n k],'Name','inputs')
  33.    
  34.     convolution2dLayer(3,8,'Padding','same','Name','Conv1')
  35.     batchNormalizationLayer('Name','batchNrom1')
  36.     reluLayer('Name','relu')
  37.    
  38.     maxPooling2dLayer(2,'Stride',2,'Name','Maxpooling1')
  39.    
  40.     convolution2dLayer(3,16,'Padding','same','Name','Conv2')
  41.     batchNormalizationLayer('Name','batchNrom2')
  42.     reluLayer('Name','relu2')
  43.    
  44.     maxPooling2dLayer(2,'Stride',2,'Name','Maxpooling2')
  45.    
  46.     convolution2dLayer(3,32,'Padding','same','Name','Conv3')
  47.     batchNormalizationLayer('Name','batchNrom3')
  48.     reluLayer('Name','relu3')
  49.    
  50.     fullyConnectedLayer(256,'Name','Fullconnect')
  51.     fullyConnectedLayer(128,'Name','Fullconnect2')
  52.     fullyConnectedLayer(numofprediction,'Name','Fullconnectout')
  53.     softmaxLayer('Name','softmaxLayer')
  54.     classificationLayer("Name","classificationLayer")];
  55.  
  56. lgraph = layerGraph(layers);
  57. plot(lgraph)
  58.  
  59. options = trainingOptions('adam', ...
  60.     'InitialLearnRate',0.01, ...
  61.     'MaxEpochs',5000, ...
  62.     'Shuffle','every-epoch', ...
  63.     'ExecutionEnvironment',"gpu",...
  64.     'ValidationData',Test, ...
  65.     'ValidationFrequency',20, ...
  66.     'Verbose',false, ...
  67.     'Plots','training-progress');
  68.  
  69. net = trainNetwork(Train,layers,options)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement