Neural Network Last Layer Shows a Different Number of Outputs
4 次查看(过去 30 天)
显示 更早的评论
So I have the following inputs and outputs with their respective dimenions
input: 521 x 21048
output: 15 x 21048
So basically I have 15 classes, and the network should tell me what class the input belongs to.
This is the network's configuration:
trainFcn = 'trainscg';
hiddenLayerSize = ([10 5]);
net = patternnet(hiddenLayerSize, trainFcn);
net.input.processFcns = {'removeconstantrows','mapminmax'};
net.divideFcn = 'dividerand'; % Divide data randomly
net.divideMode = 'sample'; % Divide up every sample
net.divideParam.trainRatio = 90/100;
net.divideParam.valRatio = 5/100;
net.divideParam.testRatio = 5/100;
net.performFcn = 'crossentropy'; % Cross-Entropy
net.plotFcns = {'plotperform','plottrainstate','ploterrhist', ...
'plotconfusion', 'plotroc'};
[net,tr] = train(net,x,t);
However, when I view the network, it always shows the output player with "13" outputs instead of 15!
This does not happen when I use the GUI to train the network. But as soon as I use the advanced scipt (even with the same configurations I set in the GUI) I still get 13 in the output layer, whether it is 1 layer or multiple ones.
2 个评论
Greg Heath
2019-1-30
I still get 15 with
close all, clear all, clc
x = randn( 521, 21048);
t = rand( 15, 21048);
YOUR CODE
view(net)
HOPE THIS HELPS
GREG
回答(1 个)
Greg Heath
2019-1-29
编辑:Greg Heath
2019-1-30
Line 2: target, not output
trainFcn is undefined.
I get 15, not 13 in the figure
Hope this helps.
Thank you for formally accepting my answer
Greg
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Sequence and Numeric Feature Data Workflows 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!