2
我想用MATLAB來訓練一個簡單的前饋網絡。它計算異或。這裏是我的代碼:如何訓練一個能夠使用MATLAB計算XOR的神經網絡?
net = feedforwardnet([3]);
P = [0 0; 0 1; 1 0; 1 1]';
T = [0 1 1 0]; % desired output
net = configure(net, P, T);
net.trainParam.goal = 1e-8;
net.trainParam.epochs = 1000;
net = train(net, P, T);
它說目標得到滿足。然而,我沒有得到所需的輸出:
sim(net, P)
1.4885 0.6830 0.7796 0.3879
我錯過了什麼嗎?
呀。最後我做到了。但我仍然有一些疑問: 1)不是一個時代基本上是一個迭代?我認爲,當我定義時代= 1000時,我說「看看,用'P'和'T'來訓練網絡'網絡',如果需要的話,再用999重複這個過程。 2)我很習慣Encog(Java框架),我喜歡寫代碼[像這樣](http://www.heatonresearch.com/wiki/Hello_World)。它可能在MATLAB中得到目前的錯誤? – user3680 2013-02-28 22:24:50
@ user3680是的,時代是這樣的,但是你告訴神經網絡MAXIMUM紀元,如果他達到了更快的精度就會停止,爲什麼1000紀元,如果在1紀元輸出是正確的?你說過:「如果需要」。對不起,我不知道Java,也沒有Encog .... – 2013-03-01 10:09:44
@ user3680順便說一句,如果答案已幫助您標記爲正確請;;) – 2013-03-01 10:10:29