Turns out that even though Softmax is in the output layer category, it isn't counted as an output. I added in a classification output layer after the softmax and it runs now.
Error: Unused Output Layer
20 ビュー (過去 30 日間)
古いコメントを表示
This is the full error I'm getting: Error using trainNetwork (line 150)
Invalid network.
Error in train (line 12)
Caused by:
Network: Missing output layer. The network must have one output layer.
Layer 4: Unused output. Each layer output must be connected to the input of another layer.
X is a 5 by 30 matrix that I'm trying to run through a relu, then a fully connected layer, and then a softmax to label the data as 0 or 1. I'm confused on why the softmaxLayer isn't taking in the data from the fullyConnectedLayer.
This is the function I'm trying to run.
function [trained_net] = train(X,Y)
% creates adam optimizer
options = trainingOptions('adam', 'InitialLearnRate',3e-4, ...
'SquaredGradientDecayFactor',0.99, 'MaxEpochs',20, ...
'MiniBatchSize',10, 'Plots','training-progress');
% creates layers
layers = [sequenceInputLayer(5)
reluLayer
fullyConnectedLayer(1)
softmaxLayer];
% trains network
trained_net = trainNetwork(X,Y,layers,options);
0 件のコメント
回答 (2 件)
Harsha Priya Daggubati
2020 年 1 月 31 日
Hi,
I guess the issue is with fullConnectedLayer's outputSize, as it needs to be equal to the number of classes your network needs to classify. Try changing it to 2 and check whether it works.
参考
カテゴリ
Help Center および File Exchange で Image Data Workflows についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!