How do I create a neural network that will give multiple input and outputs?

22 views (last 30 days)
Junghyun Im on 22 Nov 2019
Commented: Ray ptucha on 24 Jan 2021
Hi I am trying to design a ffnn neural network. I have input data of 900x4, and I want to design with output data of 900x2. Here's how I designed it: But you can't assign function output to this expression. Error occurs.
How do you solve this?
clear all; close all; clc;
[ I 4 ] = size(input)
[ O 2 ] = size(target)
input = [a(:,3) a(:,4) a(:,5) a(:,6)];
target = [a(:,1) a(:,2)];
net = feedforwardnet(10);
net = train(net, input', target');
y = net(input);
perf = perform(net,y,target)

Bhargavi Maganuru on 26 Nov 2019
Inputs for the train should be R-by-Q matrix where R is input size and Q is batch size. Input size is 900x4 (Q- 900 and R-4) and target size is 900x2(Q-900 and R-2) in your case. So there is no issue with the below line
net = train (net, input', target');
But the lines
y = net(input);
perf = perform(net,y,target)
will give you an error because sizes don’t match. You could try using transpose for both input and target.
y = net(input');
perf = perform(net,y,target');
Hope this helps!

Greg Heath on 1 Jan 2020
ALWAYS arrange your data so that
[ I N ] = size(input)
[ O N ] = size(output)
Hope this helps.
Greg
Ray ptucha on 24 Jan 2021
Greg, I noticed that you have answered this question online numerous times- thank you. However, your answer is terse. It would be great if you could post a simple example so that users can step through it. One good example is at:
https://www.mathworks.com/help/deeplearning/ug/train-network-with-multiple-outputs.html
but requires 2020b, which most readers probably don't have yet...
Thank you.

Categories

Find more on Get Started with Deep Learning Toolbox in Help Center and File Exchange

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!