CNN: How to create label vector acceptable by trainNetwork
조회 수: 5 (최근 30일)
이전 댓글 표시
I'm trying to create cnn for load forecasting. I try to create lebel vector for training but it didn't work.
I have 3 types of data with 1920 samples fo each for training set (1920x3 double) and 3 types of data with 768 samples fo each for testing set (768x3 double). I reshaped train data to 4D array.
this is my code for this work.
%% Reshaped input
Train_dataset = reshape(Train_data, [1 1920 1 3]);
% Creat the labels
label = (1:3,:);
Train_Labels = categorical(label);
%% Layers
layers = [ ...
imageInputLayer([1 1920 1])
convolution2dLayer(1,20)
reluLayer
maxPooling2dLayer(1,'Stride',1)
fullyConnectedLayer(1)
softmaxLayer
classificationLayer];
%% Train Options
train_options = trainingOptions('sgdm');
%% Train network
net = trainNetwork(Train_dataset, Train_Labels, layers, train_options);
%% Test network
Pred = classify(net, Test_data)'
What is the train lebel should look like? or somewhere was wrong?
the error frequently shows 'Number of observations in X and Y disagree.'
댓글 수: 0
채택된 답변
Anshika Chaurasia
2021년 9월 17일
Hi,
The error is appearing because the number of observations in "Train_dataset" and "Train_Labels" are different.
So, if "Train_dataset" is 1920x3 then "Train_Labels" should be 1920x1.
One more thing, following line can throw error as indexing can be applied on an array:
label = (1:3,:);
댓글 수: 0
추가 답변 (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!