Joining multiple neural nets in non-sequential model

Hey, I hope everyone is having a great day.
I have the following setup:

state = netA(input)
output1=netB(state)
output2=netC(state)

I can define target values for output1 and output2. How would you approach training the netA?
I am trying to combine the gradient on the input of netB and netC (state) as the loss to train netA.
or should I use them separately?!!!
how can I get the gradient on the input of netB and netC?

Best,
hn

1 Like

You could calculate the losses from using output1 and output2, accumulate them, and call loss.backward() to calculate the gradients for all 3 models. If you don’t want to train netB and netC, you could set the .requires_grad attribute if their parameters to False.

In case you want to get the gradients in state, you could call state.retrain_grad(), which would then allow you to access its .grad after the backward call.

1 Like

Thank you ptrblck. I will try your suggestions and get back to you if I had more questions, I am a newbie, and things are slow on my side.