docstr: Creates a LinkNet decoder block
docstr_tok: ["Creates","a","LinkNet","decoder","block"]
code: def decoder_block(
      in_chan: int, out_chan: int, stride: int
  ) -> nn.Sequential:
      """Creates a LinkNet decoder block"""
      mid_chan = in_chan // 4
      return nn.Sequential(
          nn.Conv2d(in_chan, mid_chan, kernel_size=1, bias=False),
          nn.BatchNorm2d(mid_chan),
          nn.ReLU(inplace=True),
          nn.ConvTranspose2d(
              mid_chan,
              mid_chan,
              3,
              padding=1,
              output_padding=stride - 1,
              stride=stride,
              bias=False,
          ),
          nn.BatchNorm2d(mid_chan),
          nn.ReLU(inplace=True),
          nn.Conv2d(mid_chan, out_chan, kernel_size=1, bias=False),
          nn.BatchNorm2d(out_chan),
          nn.ReLU(inplace=True),
      )
  
imports: from typing import Any, Callable, Dict, List, Optional, Tuple
  import numpy
  import torch
  from torch import nn
  from torch.nn import functional
  from torchvision.models._utils import IntermediateLayerGetter
  from doctr.file_utils import CLASS_NAME
  from doctr.models.classification import resnet18, resnet34, resnet50
  from ...utils import _bf16_to_float32, load_pretrained_params
  from .base import LinkNetPostProcessor, _LinkNet
label_desc: Use image node_id 2 for calling the LinkNetFPN obj's underlying member method code with example usage: obj.decoder_block(in_chan, out_chan, stride) and returns: nn