class_docstr: Split-Attention (aka Splat)
      
code: def __init__(
      self,
      in_channels,
      out_channels=None,
      kernel_size=3,
      stride=1,
      padding=None,
      dilation=1,
      groups=1,
      bias=False,
      radix=2,
      rd_ratio=0.25,
      rd_channels=None,
      rd_divisor=8,
      act_layer=nn.ReLU,
      norm_layer=None,
      drop_layer=None,
      **kwargs,
  ):
      super(SplitAttn, self).__init__()
      out_channels = out_channels or in_channels
      self.radix = radix
      mid_chs = out_channels * radix
      if rd_channels is None:
          attn_chs = make_divisible(
              in_channels * radix * rd_ratio,
              min_value=32,
              divisor=rd_divisor,
          )
      else:
          attn_chs = rd_channels * radix
  
      padding = kernel_size // 2 if padding is None else padding
      self.conv = nn.Conv2d(
          in_channels,
          mid_chs,
          kernel_size,
          stride,
          padding,
          dilation,
          groups=groups * radix,
          bias=bias,
          **kwargs,
      )
      self.bn0 = norm_layer(mid_chs) if norm_layer else nn.Identity()
      self.drop = (
          drop_layer() if drop_layer is not None else nn.Identity()
      )
      self.act0 = act_layer(inplace=True)
      self.fc1 = nn.Conv2d(out_channels, attn_chs, 1, groups=groups)
      self.bn1 = norm_layer(attn_chs) if norm_layer else nn.Identity()
      self.act1 = act_layer(inplace=True)
      self.fc2 = nn.Conv2d(attn_chs, mid_chs, 1, groups=groups)
      self.rsoftmax = RadixSoftmax(radix, groups)
  
file_path: pytorch-image-models/timm/layers/split_attn.py
imports: import torch
  import torch.nn.functional
  from torch import nn
  from .helpers import make_divisible
label_desc: Use image node_id 1 to create a new SplitAttn object from inherited base classes: nn with example: obj = SplitAttn(in_channels, out_channels, kernel_size, stride, padding, dilation, groups, bias, radix, rd_ratio, rd_channels, rd_divisor, act_layer, norm_layer, drop_layer)