Custom Layer- Incorrent number of outputs

D
deep-learning-er · Jun 22, 2021 · 2.1K views
Question
Hi,   I'm trying to create a custom intermediate layer that can split up data. When I use checkLayer to validate the functionality it throws the error: "Incorrect number of output arguments for 'predict' in Layer splitDataLayer. Expected to have 1, but instead it has 4." although I've set the number of Outputs to 4 in the constructor.   classdef splitDataLayer < nnet.layer.Layer methods function obj = splitDataLayer(name) obj.Name = name; obj.numOutputs = 4; obj.OutputNames = {'out1','out2','out3','out4'}; end function [Z1, Z2, Z3, Z4] = predict(~, X) Z1 = X(1, :, :, :); Z2 = X(2, :, :, :); Z3 = X(3, :, :, :); Z4 = X(4, :, :, :); end function [dLdX] = backward(~,~,~,~,~,~,dLdZ1,dLdZ2,dLdZ3,dLdZ4,~) dLdX = cat(1, dLdZ1,... dLdZ2,... dLdZ3,... dLdZ4); end end end As can be seen above, both the number of outputs as well as the output matrix in the predict function have been set correctly. So I don't know what could be wrong about the code and cause that error.  
Expert Answer
Profile picture of Prashant Kumar
Prashant Kumar PhD Expert
Answered Aug 23, 2026
Multi-input/Multi-output custom layers are supported from R2019a. From your error message I suspect you are on a older release.
 
Your layer looks good though, apart from obj.numOutputs = 4; which should be obj.NumOutputs = 4;
 
When I correct for that all the checkLayer tests pass in R2019a:
layer = splitDataLayer('test');
validInputSize = [4 5 20 4]; % Some arbitrary dimensions
checkLayer(layer,validInputSize,'ObservationDimension',4)
Running nnet.checklayer.TestCase
.......... .......... ....
Done nnet.checklayer.TestCase
__________

Test Summary:
	 24 Passed, 0 Failed, 0 Incomplete, 0 Skipped.
	 Time elapsed: 1.3818 seconds.
100% Run Guarantee 3-Hour Fast-Track Delivery

Need a Custom Version or Complete Simulation for This Problem?

Our 500+ PhD engineers build, debug, and optimize working MATLAB scripts and Simulink (.slx) models tailored to your exact assignment rubrics with zero plagiarism.

Tested on MATLAB R2024b / R2026a
Turnitin 0% Plagiarism Report
Free 7-Day Revisions Guarantee
Have a different question? Ask here

Get a Free Consultation or a Sample Assignment Review!