class_docstr: YOLO V3 Detection Block which does the following:
  - add a few conv layers
  - return the output
  - have a branch that do yolo detection.
  Parameters
  ----------
  channel : int
      Number of channels for 1x1 conv. 3x3 Conv will have 2*channel.
  norm_layer : object
      Normalization layer used (default: :class:`mxnet.gluon.nn.BatchNorm`)
      Can be :class:`mxnet.gluon.nn.BatchNorm` or :class:`mxnet.gluon.contrib.nn.SyncBatchNorm`.
  norm_kwargs : dict
      Additional `norm_layer` arguments, for example `num_devices=4`
      for :class:`mxnet.gluon.contrib.nn.SyncBatchNorm`.
class_docstr_tok: ["YOLO","V3","Detection","Block","which","does","the","following",":","-","add","a","few","conv","layers","-","return","the","output","-","have","a","branch","that","do","yolo","detection",".","Parameters","--","--","--","--","--","channel",":","int","Number","of","channels","for","1x1","conv",".","3x3","Conv","will","have","2","*","channel",".","norm_layer",":","object","Normalization","layer","used","(","default",":",":","class",":","`","mxnet.gluon.nn.BatchNorm","`",")","Can","be",":","class",":","`","mxnet.gluon.nn.BatchNorm","`","or",":","class",":","`","mxnet.gluon.contrib.nn.SyncBatchNorm","`",".","norm_kwargs",":","dict","Additional","`","norm_layer","`","arguments",",","for","example","`","num_devices=4","`","for",":","class",":","`","mxnet.gluon.contrib.nn.SyncBatchNorm","`","."]
code: def __init__(
      self, channel, norm_layer=BatchNorm, norm_kwargs=None, **kwargs
  ):
      super(YOLODetectionBlockV3, self).__init__(**kwargs)
      assert (
          channel % 2 == 0
      ), "channel {} cannot be divided by 2".format(channel)
      with self.name_scope():
          self.body = nn.HybridSequential(prefix="")
          for _ in range(2):
              # 1x1 reduce
              self.body.add(
                  _conv2d(
                      channel,
                      1,
                      0,
                      1,
                      norm_layer=norm_layer,
                      norm_kwargs=norm_kwargs,
                  )
              )
              # 3x3 expand
              self.body.add(
                  _conv2d(
                      channel * 2,
                      3,
                      1,
                      1,
                      norm_layer=norm_layer,
                      norm_kwargs=norm_kwargs,
                  )
              )
          self.body.add(
              _conv2d(
                  channel,
                  1,
                  0,
                  1,
                  norm_layer=norm_layer,
                  norm_kwargs=norm_kwargs,
              )
          )
          self.tip = _conv2d(
              channel * 2,
              3,
              1,
              1,
              norm_layer=norm_layer,
              norm_kwargs=norm_kwargs,
          )
  
imports: from __future__ import absolute_import
  from __future__ import division
  import os
  import warnings
  import numpy
  import mxnet
  from mxnet import gluon
  from mxnet import autograd
  from mxnet.gluon import nn
  from mxnet.gluon.nn import BatchNorm
  from .darknet import _conv2d, darknet53
  from ..mobilenet import get_mobilenet
  from .yolo_target import YOLOV3TargetMerger
  from ...loss import YOLOV3Loss
label_desc: Use image node_id 1 to create a new YOLODetectionBlockV3 object from inherited base classes: gluon with example: obj = YOLODetectionBlockV3(channel, norm_layer, norm_kwargs)