sequence to sequence classification - invalid training data
18 次查看(过去 30 天)
显示 更早的评论
Hi, I'm training a classification network:
%% def
inputSize = 1;
numHiddenUnits = 200;
numClasses = 2;
layers = [ ...
sequenceInputLayer(inputSize)
bilstmLayer(numHiddenUnits,'OutputMode','last')
dropoutLayer(0.5,"Name","dropout") %
fullyConnectedLayer(numClasses)
softmaxLayer
classificationLayer]
I generated my data, which are:
- the labels, that are arrays long 4000 elements (which are categorical), memorized in a cell array like this:
- the signals, each long 4000 samples, memorized in a cell array, like this:
I tried to ''stick'' to this example (https://it.mathworks.com/help/deeplearning/ug/sequence-to-sequence-classification-using-deep-learning.html) to understand how to prepare the cell array for the labels, but when I use trainNetwork it gives me this error:
Error using trainNetwork (line 184)
Invalid training data. For image, sequence-to-label, and feature classification tasks, responses must be categorical.
I can't understand what's wrong, I tried to prepare the data in a different way, but it didn't work anyway, can you suggest what to try?
0 个评论
采纳的回答
Srivardhan Gadila
2021-11-16
The issue here is that you are using the bilstmLayer with 'OutputMode' set to 'last', which means that it would only output the last time step of the sequence and hence your network output would not be a 1x4000 categorical but instead 1x1 categorical.
Hence set the 'OutputMode' to 'sequence' and execute the code, it should work fine.
Refer to the documentation of bilstmLayer & description of OutputMode property for more information.
更多回答(0 个)
另请参阅
类别
在 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!