I found this Topic 6.
And there’s one sentence in the reply said that:

batchnorm layer does not require it’s output to be able to perform the backward pass.

I don’t understand these words. Why we don’t need the output here?
Also, I tried some experiments:
        # layer define
        self.l1 = nn.Linear(2, 1)
        self.l2 = nn.Linear(1, 1)
        self.l3 = nn.Linear(1, 1)
        self.bn1 = nn.BatchNorm1d(1)

        # forward V1.0
        x1 = self.l1(input) 
        x2 = self.l2(x1)
        x = self.bn1(x2)
        x += self.l3(x1)

        # forward V2.0
        x1 = self.l1(input)
        x = self.l2(x1)
        x += self.l3(x1)

Both forwarding is working, so I am also curious about why V2.0 also works?
It seems no difference between BatchNorm and Linear layer.