class_docstr: Basic Unet
class_docstr_tok: ["Basic","Unet"]
code: def forward(self, x):
      enc1 = self.enc1(x)
      enc2 = self.enc2(enc1)
      enc3 = self.enc3(enc2)
      enc4 = self.enc4(enc3)
      center = self.center(enc4)
      dec4 = self.dec4(
          torch.cat(
              [
                  center,
                  F.interpolate(
                      enc4, center.size()[2:], mode="bilinear"
                  ),
              ],
              1,
          )
      )
      dec3 = self.dec3(
          torch.cat(
              [
                  dec4,
                  F.interpolate(enc3, dec4.size()[2:], mode="bilinear"),
              ],
              1,
          )
      )
      dec2 = self.dec2(
          torch.cat(
              [
                  dec3,
                  F.interpolate(enc2, dec3.size()[2:], mode="bilinear"),
              ],
              1,
          )
      )
      dec1 = self.dec1(
          torch.cat(
              [
                  dec2,
                  F.interpolate(enc1, dec2.size()[2:], mode="bilinear"),
              ],
              1,
          )
      )
      final = self.final(dec1)
      return F.interpolate(final, x.size()[2:], mode="bilinear")
  
file_path: pywick/pywick/models/segmentation/u_net.py
imports: import torch
  import torch.nn.functional
  from torch import nn
  from .fcn_utils import initialize_weights
label_desc: Use image node_id 2 for calling the UNet obj's underlying member method code with example usage: obj.forward(x) and returns: F