Custom Layer- Incorrent number of outputs
2 views (last 30 days)
Show older comments
Valentin Steininger
on 9 Aug 2019
Commented: Valentin Steininger
on 9 Aug 2019
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.
I would be happy for any help!
0 Comments
Accepted Answer
Maria Duarte Rosa
on 9 Aug 2019
Hi Valentin,
Thank you for your question.
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.
I hope this helps.
More Answers (0)
See Also
Categories
Find more on Image Data Workflows in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!