Is it possible to combine two neural networks in MATLAB?
43 views (last 30 days)
For my assignment I have been looking into the possibility to combine two neural networks into one by element-wise summation of certain layers.
Much like this:
I know that this can be implemented in python, but what I was wondering was if it is also possible to implement it in MATLAB? If yes, how? I have looked into the parfor function to train multiple neural networks in parallel, however I have not found a way to then combine the layers of these networks.
Thanks in advance!
Bernhard Suhm on 9 Nov 2018
MATLAB has an AdditionLayer that allows you to combine outputs of two separate strands in your deep learning network. With R2018b, you can use the Deep Learning Designer app to graphically layout complex layer architectures like the one you allude to above. You need the Deep Learning toolbox though.
Shounak Mitra on 11 Nov 2018
If I understand your question correctly, you want to train 2 neural networks simultaneously and then combine them into one through an element wise operation of the layers. You're not looking to merge two branches of the same network. Is my understanding correct? I'll reach out to you to learn more about your use-case.
By Looking at the workflow diagram, I am wondering if you're trying to use an encoder-decoder network for a semnatic segmentation task? If that's true, then learn more here --> https://www.mathworks.com/help/vision/examples/semantic-segmentation-using-deep-learning.html
If you're looking for combining two branches of a neural network using an element-wise operation, then we've 2 ways in which you can do that. 1. Depth Concatenation layer : https://www.mathworks.com/help/deeplearning/ref/nnet.cnn.layer.depthconcatenationlayer.html
2. Addition layer (as mentioned by Bernhard): https://www.mathworks.com/help/deeplearning/ref/nnet.cnn.layer.additionlayer.html?searchHighlight=addition%20layer&s_tid=doc_srchtitle