A complement:

If I set depth=2, then the loop for _ in range(depth-2): is not executed: no segfault
If I set depth=3, the loop executed once, if I comment the line layers.append(nn.Conv2d(...)), then the init goes well through the BN init: no segfault
Then If I comment the creation of the BN and Relu layers but decomment the Conv2d layer, it goes to segFault

So it is really the line layers.append(nn.Conv2d(in_channels=n_channels, out_channels=n_channels, kernel_size=kernel_size, padding=padding, bias=False))which makes trouble. Notice that n_channels=64, kernel_size = 3 and padding = 1.
So, the minimal code that goes to segFault is
class DnCNN(nn.Module):
    def __init__(self, depth=17, n_channels=64, image_channels=1, use_bnorm=True, kernel_size=3): #depth=17 by default
        super(DnCNN, self).__init__()
        kernel_size = 3
        padding = 1
        layers = []

        self.dncnn = nn.Sequential(nn.Conv2d(in_channels=image_channels,
                                             out_channels=n_channels, kernel_size=kernel_size, padding=padding, bias=True),
                                   nn.ReLU(inplace=True),
                                   nn.Conv2d(in_channels=n_channels,
                                             out_channels=n_channels, kernel_size=kernel_size, padding=padding, bias=False),
                                   nn.BatchNorm2d(n_channels, eps=0.0001, momentum = 0.95),
                                   nn.ReLU(inplace=True),
                                   nn.Conv2d(in_channels=n_channels,
                                             out_channels=image_channels, kernel_size=kernel_size, padding=padding, bias=False)
                                   )

        self._initialize_weights()
        print("DnCNN init done")

    def forward(self, x):
        y = x
        out = self.dncnn(x)
        return y-out

    def _initialize_weights(self):
        for m in self.modules():
            if isinstance(m, nn.Conv2d):
                print('Conv init weight...',m.weight.size())
                init.orthogonal_(m.weight)
                print('Ok')
                print('m.bias=', m.bias)
                if m.bias is not None:
                    print('Conv init bias...')
                    init.constant_(m.bias, 0)
                    print('Ok')
            elif isinstance(m, nn.BatchNorm2d):
                print('BN init weight...')
                init.constant_(m.weight, 1)
                print('BN init bias...')
                init.constant_(m.bias, 0)
                print('Ok')

####
model = DnCNN()
####