I have a loss where each layer plays into the loss. Which is the correct approach in terms of making sure the weights are updated properly?

```
# option 1
x2 = self.layer1(x1)
x3 = self.layer2(x2)
x4 = self.layer3(x3)
```

In this option, I detach when feeding into each subsequent block

```
# option 2
# x2 = self.layer1(x1.detach())
# x3 = self.layer2(x2.detach())
# x4 = self.layer3(x3.detach())
```

shared ops which calculate 4 losses and sum them.

```
x4 = F.relu(self.bn1(x4))
loss = some_loss([x1, x2, x3, x4])
```