def forward(self, x):
    z = ((x - self.input_mean[None, :, None, None].to(x.device)) / self.input_std[None, :, None, None].to(x.device))
    up_activation = []
    for i in range(self.n_conv):
        up_activation.append(z)
        z = self._modules[('conv%d' % i)](z)
    for i in reversed(range(self.n_conv)):
        z = self._modules[('upconv%d' % i)](z)
        z = z[:, :, :up_activation[i].size(2), :up_activation[i].size(3)]
        if self.use_skip:
            z = torch.cat([z, up_activation[i]], dim=1)
    return self.classifier(z)
def forward(self, x):
    z = ((x - self.input_mean[None, :, None, None].to(x.device)) / self.input_std[None, :, None, None].to(x.device))
    up_activation = []
    for i in range(self.n_conv):
        up_activation.append(z)
        z = self._modules[('conv%d' % i)](z)
    for i in reversed(range(self.n_conv)):
        z = self._modules[('upconv%d' % i)](z)
        z = z[:, :, :up_activation[i].size(2), :up_activation[i].size(3)]
        if self.use_skip:
            z = torch.cat([z, up_activation[i]], dim=1)
    return self.classifier(z)