trainNetwork - Number of observations in X and Y disagree
    조회 수: 9 (최근 30일)
  
       이전 댓글 표시
    
Hi,
I'm training a network that has an imageInputLayer with image size of [498,13]. I have 1600 instances of these 498x13 images in my training data set. 
The dimensions of the variables I'm passing to the trainNetwork function are the following:
Xtrain: 498x13x1600
Labels: 1600x1
These dimensions are as reccomended in the documentation:
Dimensions for X: hxwxN & Dimensions for Y: Nx1 are as specified in the answer to a question on this error asked previously.
But I'm still getting the error "Number of observations in X and Y disagree" when I call trainNetwork(Xtrain, Labels, layers, options)
Do not understand why I'm getting the error.
Thanks,
Nikhil
댓글 수: 2
  Image Analyst
      
      
 2022년 10월 9일
				Just to be clear, replace this line
trainNetwork(Xtrain, Labels, layers, options)
with these lines
whos Xtrain
whos Labels
trainNetwork(Xtrain, Labels, layers, options)
and tell us what you see in the command window.
답변 (2개)
  Rahul
    
 2022년 10월 12일
        "XtrainShaped" dimension should be [img_height, img_width, img_planes, num_samples]. "img_planes" denotes whether is image is RGB (img_planes = 3) or grayscale (img_planes = 1). In your dataset, the network is thinking the number of planes are 1600  with only one sample whereas length of the Labels categorical vector is 1600. Hence, you are receiving the error. You can reshape your "XtrainShaped" matrix using the link hyperlink given.
The shape of your XtrainShaped should be  . The 1 represents the number of planes in an image denoting whether the image is grayscale or RGB. Please refer the below code for more information. This way, you will not receive any syntax error.
. The 1 represents the number of planes in an image denoting whether the image is grayscale or RGB. Please refer the below code for more information. This way, you will not receive any syntax error.
 . The 1 represents the number of planes in an image denoting whether the image is grayscale or RGB. Please refer the below code for more information. This way, you will not receive any syntax error.
. The 1 represents the number of planes in an image denoting whether the image is grayscale or RGB. Please refer the below code for more information. This way, you will not receive any syntax error.Important Note: The accuracy and other metrics depend on your CNN model, training options, and other hyperparameters. Below code is just for demo purpose to avoid the error that you are receiving.
imdsTrain = rand(498, 13, 1600); % generating random samples (your dataset)
% RESHAPE YOUR DATA
imdsTrain_reshaped = reshape(imdsTrain, [498, 13, 1, 1600]); % reshaping to [height, width , num_planes, num_samples]
labels = randi([0,9],1600, 1); % generating vector having 10 classes
labels = categorical(labels); % converting to categorical vector
[img_height, img_width , num_planes, num_samples] = size(imdsTrain_reshaped);
num_classes = 10; 
% CNN layers
layers = [ ...
    imageInputLayer([img_height, img_width , num_planes]) % input layer
    convolution2dLayer(3,20) % 2D convolutional layer
    reluLayer % activation function
    maxPooling2dLayer(2,'Stride',2) % 2D max-pooling layer
    fullyConnectedLayer(num_classes) % Fully connected later with output neurons 10
    softmaxLayer % activation function
    classificationLayer]; % Classification layer
% training options
options = trainingOptions('sgdm', ...
    'MaxEpochs',5,...
    'InitialLearnRate',1e-4, ...
    'Verbose',true, ...
    'Plots','training-progress');
% training the network
net = trainNetwork(imdsTrain_reshaped, labels, layers, options);
댓글 수: 11
  Rahul
    
 2022년 10월 19일
				Sure 8:00 PM IST works. I have mailed you the google meet link details on your gmail account. Feel free to reply.
  PABLO MARTIN PUERTO
 2023년 5월 2일
				Did you get the solution for that? I am currently having the same problem. Thanks
참고 항목
카테고리
				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!








