class_docstr: AlphaPose model 
class_docstr_tok: ["AlphaPose","model"]
code: def __init__(
      self,
      preact,
      num_joints,
      norm_layer=nn.BatchNorm,
      norm_kwargs=None,
      **kwargs,
  ):
      super(AlphaPose, self).__init__(**kwargs)
      self.preact = preact
      self.num_joints = num_joints
  
      self.shuffle1 = PixelShuffle(2)
      if norm_kwargs is None:
          norm_kwargs = {}
      self.duc1 = DUC(
          1024,
          inplanes=512,
          upscale_factor=2,
          norm_layer=norm_layer,
          **norm_kwargs,
      )
      self.duc2 = DUC(
          512,
          inplanes=256,
          upscale_factor=2,
          norm_layer=norm_layer,
          **norm_kwargs,
      )
  
      self.conv_out = nn.Conv2D(
          channels=num_joints,
          in_channels=128,
          kernel_size=3,
          strides=1,
          padding=1,
          weight_initializer=initializer.Uniform(
              scale=math.sqrt(1 / (128 * 3 * 3))
          ),
          bias_initializer=initializer.Uniform(
              scale=math.sqrt(1 / (128 * 3 * 3))
          ),
      )
  
imports: import math
  import os
  import mxnet
  from mxnet import initializer
  from mxnet.gluon import nn
  from mxnet.gluon.block import HybridBlock
  from .utils import ZeroUniform, _try_load_parameters
label_desc: Use image node_id 1 to create a new AlphaPose object from inherited base classes: HybridBlock with example: obj = AlphaPose(preact, num_joints, norm_layer, norm_kwargs)