A. matlab中bp神經網路的工具箱怎麼用,不要matlab程序,就工具箱怎麼實現問題的解決
matlab中神經網路的工具箱:輸入nntool,就會彈出一個對話框,然後你就可以根據彈出框的指示來操作。
B. 如何使用matlab神經網路工具箱
為了看懂師兄的文章中使用的方法,研究了一下神經網路
昨天花了一天的時間查怎麼寫程序,但是費了半天勁,不能運行,網路知道里倒是有一個,可以運行的,先貼著做標本
% 生成訓練樣本集
clear all;
clc;
P=[110 0.807 240 0.2 15 1 18 2 1.5;
110 2.865 240 0.1 15 2 12 1 2;
110 2.59 240 0.1 12 4 24 1 1.5;
220 0.6 240 0.3 12 3 18 2 1;
220 3 240 0.3 25 3 21 1 1.5;
110 1.562 240 0.3 15 3 18 1 1.5;
110 0.547 240 0.3 15 1 9 2 1.5];
0 1.318 300 0.1 15 2 18 1 2];
T=[54248 162787 168380 314797;
28614 63958 69637 82898;
86002 402710 644415 328084;
230802 445102 362823 335913;
60257 127892 76753 73541;
34615 93532 80762 110049;
56783 172907 164548 144040];
@907 117437 120368 130179];
m=max(max(P));
n=max(max(T));
P=P'/m;
T=T'/n;
%-------------------------------------------------------------------------%
pr(1:9,1)=0; %輸入矢量的取值范圍矩陣
pr(1:9,2)=1;
bpnet=newff(pr,[12 4],{'logsig', 'logsig'}, 'traingdx', 'learngdm');
%建立BP神經網路, 12個隱層神經元,4個輸出神經元
%tranferFcn屬性 'logsig' 隱層採用Sigmoid傳輸函數
%tranferFcn屬性 'logsig' 輸出層採用Sigmoid傳輸函數
%trainFcn屬性 'traingdx' 自適應調整學習速率附加動量因子梯度下降反向傳播演算法訓練函數
%learn屬性 'learngdm' 附加動量因子的梯度下降學習函數
net.trainParam.epochs=1000;%允許最大訓練步數2000步
net.trainParam.goal=0.001; %訓練目標最小誤差0.001
net.trainParam.show=10; %每間隔100步顯示一次訓練結果
net.trainParam.lr=0.05; %學習速率0.05
bpnet=train(bpnet,P,T);
%-------------------------------------------------------------------------
p=[110 1.318 300 0.1 15 2 18 1 2];
p=p'/m;
r=sim(bpnet,p);
R=r'*n;
display(R);
運行的結果是出現這樣的界面
點擊performance,training state,以及regression分別出現下面的界面
再搜索,發現可以通過神經網路工具箱來創建神經網路,比較友好的GUI界面,在輸入命令裡面輸入nntool,就可以開始了。
點擊import之後就出現下面的具體的設置神經網路參數的對話界面,
這是輸入輸出數據的對話窗
首先是訓練數據的輸入
然後點擊new,創建一個新的神經網路network1,並設置其輸入輸出數據,包括名稱,神經網路的類型以及隱含層的層數和節點數,還有隱含層及輸出層的訓練函數等
點擊view,可以看到這是神經網路的可視化直觀表達
創建好了一個network之後,點擊open,可以看到一個神經網路訓練,優化等的對話框,選擇了輸入輸出數據後,點擊train,神經網路開始訓練,如右下方的圖,可以顯示動態結果
C. matlab神經網路工具箱具體怎麼用
為了看懂師兄的文章中使用的方法,研究了一下神經網路
昨天花了一天的時間查怎麼寫程序,但是費了半天勁,不能運行,網路知道里倒是有一個,可以運行的,先貼著做標本
% 生成訓練樣本集
clear all;
clc;
P=[110 0.807 240 0.2 15 1 18 2 1.5;
110 2.865 240 0.1 15 2 12 1 2;
110 2.59 240 0.1 12 4 24 1 1.5;
220 0.6 240 0.3 12 3 18 2 1;
220 3 240 0.3 25 3 21 1 1.5;
110 1.562 240 0.3 15 3 18 1 1.5;
110 0.547 240 0.3 15 1 9 2 1.5];
0 1.318 300 0.1 15 2 18 1 2];
T=[54248 162787 168380 314797;
28614 63958 69637 82898;
86002 402710 644415 328084;
230802 445102 362823 335913;
60257 127892 76753 73541;
34615 93532 80762 110049;
56783 172907 164548 144040];
@907 117437 120368 130179];
m=max(max(P));
n=max(max(T));
P=P'/m;
T=T'/n;
%-------------------------------------------------------------------------%
pr(1:9,1)=0; %輸入矢量的取值范圍矩陣
pr(1:9,2)=1;
bpnet=newff(pr,[12 4],{'logsig', 'logsig'}, 'traingdx', 'learngdm');
%建立BP神經網路, 12個隱層神經元,4個輸出神經元
%tranferFcn屬性 'logsig' 隱層採用Sigmoid傳輸函數
%tranferFcn屬性 'logsig' 輸出層採用Sigmoid傳輸函數
%trainFcn屬性 'traingdx' 自適應調整學習速率附加動量因子梯度下降反向傳播演算法訓練函數
%learn屬性 'learngdm' 附加動量因子的梯度下降學習函數
net.trainParam.epochs=1000;%允許最大訓練步數2000步
net.trainParam.goal=0.001; %訓練目標最小誤差0.001
net.trainParam.show=10; %每間隔100步顯示一次訓練結果
net.trainParam.lr=0.05; %學習速率0.05
bpnet=train(bpnet,P,T);
%-------------------------------------------------------------------------
p=[110 1.318 300 0.1 15 2 18 1 2];
p=p'/m;
r=sim(bpnet,p);
R=r'*n;
display(R);
運行的結果是出現這樣的界面
點擊performance,training state,以及regression分別出現下面的界面
再搜索,發現可以通過神經網路工具箱來創建神經網路,比較友好的GUI界面,在輸入命令裡面輸入nntool,就可以開始了。
點擊import之後就出現下面的具體的設置神經網路參數的對話界面,
這是輸入輸出數據的對話窗
首先是訓練數據的輸入
然後點擊new,創建一個新的神經網路network1,並設置其輸入輸出數據,包括名稱,神經網路的類型以及隱含層的層數和節點數,還有隱含層及輸出層的訓練函數等
點擊view,可以看到這是神經網路的可視化直觀表達
創建好了一個network之後,點擊open,可以看到一個神經網路訓練,優化等的對話框,選擇了輸入輸出數據後,點擊train,神經網路開始訓練,如右下方的圖,可以顯示動態結果
下面三個圖形則是點擊performance,training state以及regression而出現的
下面就是simulate,輸入的數據是用來檢驗這個網路的數據,output改一個名字,這樣就把輸出數據和誤差都存放起來了
在主界面上點擊export就能將得到的out結果輸入到matlab中並查看
下圖就是輸出的兩個outputs結果
還在繼續挖掘,to be continue……
D. 用matlab的nntool工具箱訓練好的一個BP神經網路,下一步要怎麼做才能進行數據輸入得到相應的輸出結果
a=sim(net,x)
說實話我也菜鳥級別,你看一下最後這個函數能不能用:
其中「a」自己隨便可以設的,其實就是個代表返回值
「net」換成你訓練好的函數,
「x」換成你的輸入矩陣
E. matlab bp神經網路工具箱怎麼用
%% 訓練集/測試集產來生
% 訓練源集——用於訓練網路
P_train = ;%輸入集
T_train = ;%輸出集
% 測試集——用於測試或者使用。
P_test = ;%輸入
T_test ;
N = size(P_test,2);
%% BP神經網路創建、訓練及模擬測試
% 創建網路
net = newff(P_train,T_train,9);
% 設置訓練參數
net.trainParam.epochs = 1000;
net.trainParam.goal = 1e-3;
net.trainParam.lr = 0.01;
% 訓練網路
net = train(net,P_train,T_train);
% 模擬測試、使用。
T_test = sim(net,P_test);%得到結果。
F. Matlab神經網路工具箱輸入問題
線性神經網路的構建: net=newlin(PR,S,ID,LR) PR--Rx2階矩陣,R個輸入元素的最小最大矩陣 S---輸出層神經元個數專 ID--輸入延遲向量,默屬認值為[0] IR--學習率,默認值為0.01 net = newlin([-1 1;-1 1],1); 表示設計的是一個雙輸入單輸出線性神經網路 P = [1 2 2 3; 2 1 3 1];表示輸入樣本有四個,每一列就是一個輸入樣本 又比如假設我們期望的輸出為 T=[1 2 3 4],則一個簡單的神經網路如下: >>net = newlin([-1 1;-1 1],1);%創建初始網路 P=[1 2 2 3; 2 1 3 1]%輸入 T=[1 2 3 4]%期望的輸出 net=newlind(P,T);%用輸入和期望訓練網路 Y=sim(net,P)%模擬,可以看到模擬結果Y和期望輸出T的接近程度 P = 1 2 2 3 2 1 3 1 T = 1 2 3 4 Y...
G. 關於Matlab BP神經網路工具箱nntool的數據輸入問題。
這是可以的,但是,要把兩組數據合到一個變數中,如:x=[trainx1;trainx2];作為一個輸入矩陣。
H. matlab神經網路工具箱中,input中,輸入p=[........],p2=[......],p3=[......],.其中p1,p2,p3是階的矩陣,
階的矩陣
I. matlab神經網路多輸入單輸出問題
首先:你的想法(199個數作為輸入,1個數作為輸出)是沒什麼問題,但是你的輸入矩陣為199*n,你的n=1,表明你的樣本只有一個,這樣一個孤立的樣本作為訓練樣本沒什麼意義;
其次:姑且不談你的樣本意義,需要跟你說明的是,matlab神經網路工具箱是以一列為一個樣本,而你的B=minmax(input')使得B為1*199的矩陣,顯然不對,最好加上B=B';
最後:[net,tr]=train(net,input,output,[],[]);中的參數為三個也行,改為net=train(net,input,output);
上面所述是按舊版本來的。
下面是我修改的程序,matlab版本R2012b,你的是舊版本的matlab,所以newff用法跟新的略有不同:
clear
p=1:0.05:11-0.05;
t=(p-1).*(p-2).*(p-4).*(p-9).*(p-11);
N=length(p);
input=t(1:199)';
output=t(200);
ptest=t(2:200)';
% B=minmax(input');
net = newff(input,output,[20 6],{'tansig' 'tansig' 'purelin'},'traingdx','learngdm');
[net,tr]=train(net,input ,output);
a=sim(net,ptest');