如果你看一下feedforwardnet MATLAB help page有這樣的例子:
[x,t] = simplefit_dataset;
net = feedforwardnet(10);
net = train(net,x,t);
view(net)
y = net(x);
perf = perform(net,y,t)
這幾乎是你想要的。前饋網絡可以採用一系列不同的隱藏層大小,因此我們可以這樣做:
net = feedforwardnet([2 10 2]);
獲得您想要的體系結構。您不必擔心輸入圖層大小或輸出圖層大小。這些設置爲'0',並根據您在訓練期間提供給網絡的輸入和輸出(示例中爲net
)自動設置爲正確的大小。你的情況,你可以重塑你的56x56矩陣劃分成3136x1載體:
x = reshape(x,3161,1);
所以,按照上面的例子中,請確保您的類/目標標籤是在t
和x
您相應的輸入,你是好去。
這就是說,我不會使用這些網絡之一來分類圖像。 ConvNets通常是要走的路。
要分割的輸入數據(x和t)的訓練,驗證和測試集和具有訓練功能自動照顧泛化能力那樣,訓練之前:
net.divideFcn = 'dividerand';
net.divideParam.trainRatio = 0.7;
net.divideParam.valRatio = 0.15;
net.divideParam.testRatio = 0.15;
將其組合在一起,我們有:
[x,t] = simplefit_dataset;
net = feedforwardnet(10);
net.divideFcn = 'dividerand';
net.divideParam.trainRatio = 0.7;
net.divideParam.valRatio = 0.15;
net.divideParam.testRatio = 0.15;
net = train(net,x,t);
view(net)
y = net(x);
perf = perform(net,y,t)
@Cody Gray。問題已更新 – Addee