class_docstr: Returns a classifier block without an activation function at the top.
  It consists of a 1 * 1 convolutional layer which maps the input to a num_class channel feature map.
  The output is a probability map for each of the classes.
  
  Args:
      spatial_dims: number of spatial dimensions.
      in_channels: number of input channels.
      out_channels: number of classes to map to.
      strides: convolution stride. Defaults to 1.
      kernel_size: convolution kernel size. Defaults to 3.
      adn_ordering: a string representing the ordering of activation, normalization, and dropout.
      Defaults to "NDA".
      act: activation type and arguments. Defaults to PReLU.
class_docstr_tok: ["Returns","a","classifier","block","without","an","activation","function","at","the","top",".","It","consists","of","a","1","*","1","convolutional","layer","which","maps","the","input","to","a","num_class","channel","feature","map",".","The","output","is","a","probability","map","for","each","of","the","classes",".","Args",":","spatial_dims",":","number","of","spatial","dimensions",".","in_channels",":","number","of","input","channels",".","out_channels",":","number","of","classes","to","map","to",".","strides",":","convolution","stride",".","Defaults","to","1.","kernel_size",":","convolution","kernel","size",".","Defaults","to","3.","adn_ordering",":","a","string","representing","the","ordering","of","activation",",","normalization",",","and","dropout",".","Defaults","to","``","NDA","''",".","act",":","activation","type","and","arguments",".","Defaults","to","PReLU","."]
code: def forward(self, input: torch.Tensor, weights=None, indices=None):
      _, channel, *dims = input.size()
      if weights is not None:
          weights, _ = torch.max(weights, dim=0)
          weights = weights.view(1, channel, 1, 1)
          # use weights to adapt how the classes are weighted.
          if len(dims) == 2:
              out_conv = F.conv2d(input, weights)
          else:
              raise ValueError(
                  "Quicknat is a 2D architecture, please check your dimension."
              )
      else:
          out_conv = super().forward(input)
      # no indices to return
      return out_conv, None
  
imports: from __future__ import annotations
  from typing import Optional, Sequence, Tuple, Union
  import torch
  import torch.nn
  import torch.nn.functional
  from monai.networks.blocks import ConvDenseBlock, Convolution
  from monai.networks.blocks import squeeze_and_excitation
  from monai.networks.layers.factories import Act, Norm
  from monai.networks.layers.simplelayers import SkipConnection
  from monai.networks.layers.utils import get_dropout_layer, get_pool_layer
  from monai.utils import optional_import
label_desc: Use image node_id 2 for calling the ClassifierBlock obj's underlying member method code with example usage: obj.forward(input, weights, indices) and returns: out_conv,  None