我正在做語音識別研究,我正試圖設計一個在Matlab中使用神經網絡進行語音識別的算法。我怎樣才能定義我的網絡結構?matlab中的神經網絡設計
0
A
回答
1
Matlab有一個Neural Network Toolbox。也許你可以看看那個?
0
你的問題非常一般。你應該給我們更多關於你想要做什麼的具體細節。 但是,我給你提供了一些有關使用Matlab神經網絡工具箱的一些提示,這些提示與我使用此工具箱的牌照識別的經驗不同。希望能幫助到你。
1-您需要知道您將使用多少隱藏層以及您的輸出數量。在我的情況下,我指定了20個隱藏層和9個輸出。
2-您需要首先創建數據集。你將使用這個數據集來訓練你的神經網絡。在LPR的情況下,我使用了一個90x50矩陣作爲我的數據集。每行都代表一個數字,從數字圖像中提取50個數字。
3-您需要一個目標矩陣來將您的數據集映射到已知輸出(因此稱爲訓練)。
下面的語法定義中提到的網絡:
net = newff(minmax(datasetNormalized'),[20 9],{'logsig' 'logsig'},'traingdx');
培訓網絡,我們寫:
[dummy,b]=max(sim(net,m_normalized'));
:
[net,tr]=train(net,datasetNormalized',T);
我們使用下面的代碼給出一個新的輸入到網絡
b是我們在這裏尋找的答案(輸出的概率最大),因此我們顯示它用戶:
msgbox(['digit is: ' num2str(b)],'Digit recognized','help');
這是一個完整的源代碼,如果你想知道什麼我的代碼做什麼:
clc
clear
close all
numOfPhotos=90;
imgRows=100;
imgCols=50;
X=zeros(numOfPhotos,(imgRows*imgCols)/100);
%%Resize Images
% myresize(imgRows,imgCols);
%read train images
datasetIndex=0;
for i=1:numOfPhotos/10
for j=1:numOfPhotos/9
datasetIndex=datasetIndex+1;
im=imread(['resized_train_numbers\' num2str(i) ' (' num2str(j) ').jpg']);
im=im2bw(im,graythresh(im));
c=1;
for g=1:imgRows/10
for e=1:imgCols/10
s=sum(sum(im((g*10-9:g*10),(e*10-9:e*10))));
X(datasetIndex,c)=s;
c=c+1;
end
end
end
end
datasetNormalized=zeros(numOfPhotos,imgRows*imgCols/100);
%%Normalize dataset contents
minDataset=min(min(X));
maxDataset=max(max(X));
for i = 1:numOfPhotos
for j=1:imgRows*imgCols/100
datasetNormalized(i, j) = (X(i,j)-minDataset)/(maxDataset-minDataset);
end
end
%
%%Neural network part
% T=zeros(1,90);
% for i=1:90
% T(i)=ceil(i/10);
% end
T=zeros(9,90);
for j=1:90
i=ceil(j/10);
T(i,j)=1;
end
% net=newff(datasetNormalized',T,20);
net = newff(minmax(datasetNormalized'),[20 9],{'logsig' 'logsig'},'traingdx');
net.performFcn='sse';
net.trainParam.goal=0.01;
net.trainParam.show=20;
net.trainParam.epochs=100;
net.trainParam.mc=0.95;
% net.trainFcn='trainlm';
net.trainParam.min_grad=1e-12;
[net,tr]=train(net,datasetNormalized',T);
%Read input image for recognition
[name file]=uigetfile('*.jpg','Choose Plate Digit Image');
newImg=imread([file name]);
newImg=imresize(newImg,[imgRows imgCols]);
newImg=im2bw(newImg,graythresh(newImg));
figure,imshow(newImg);
m=zeros(1,imgRows*imgCols/100);
c=1;
for g=1:imgRows/10
for e=1:imgCols/10
s=sum(sum(newImg((g*10-9:g*10),(e*10-9:e*10))));
m(c)=s;
c=c+1;
end
end
%Normalize m contents
m_normalized=zeros(1,imgRows*imgCols/100);
for i=1:imgRows*imgCols/100
m_normalized(i)=(m(i)-min(m))/(max(m)-min(m));
end
[dummy,b]=max(sim(net,m_normalized'));
% b=round(sim(net,m_normalized'));
msgbox(['digit is: ' num2str(b)],'Digit recognized','help');
相關問題
- 1. MATLAB神經網絡
- 2. 神經網絡設計
- 3. SIFT和神經網絡Matlab
- 4. 與MATLAB中的神經網絡混淆
- 5. Matlab中的神經網絡工具
- 6. 神經網絡值計算?
- 7. 神經網絡設置
- 8. 神經網絡
- 9. 神經網絡
- 10. 用MATLAB擬合神經網絡
- 11. 人工神經網絡在Matlab和FANN
- 12. 如何自定義MATLAB神經網絡
- 13. Matlab神經網絡不是學習
- 14. Matlab神經網絡(ANN)csv文件
- 15. matlab神經網絡工具箱
- 16. 的神經網絡
- 17. 用Matlab計算神經網絡的方程
- 18. VB中的神經網絡
- 19. sigmoid神經網絡
- 20. H2O.deeplearning神經網絡
- 21. 神經網絡:「InverseLayer」
- 22. Hopfield神經網絡
- 23. 神經網絡[ocr]
- 24. 神經網絡,python
- 25. RBF神經網絡
- 26. 神經網絡MNIST
- 27. 貝葉斯神經網絡:計算Hessian
- 28. 迴歸神經網絡是一個神經網絡鏈嗎?
- 29. 實現偏倚神經網絡神經網絡
- 30. Matlab如何保存視圖配置的matlab神經網絡
IM使用toolbox..but有任何任何選項來定義輸入並手動輸出層神經元。 – Ankita 2010-10-02 12:54:03
自從我使用這個工具箱已經有相當長的時間了,但我可以記住這樣的事情是可能的。不幸的是,我不記得如何...... – 2010-10-02 22:14:08