class_docstr: Fully Convolutional Networks for Semantic Segmentation
  
  Parameters
  ----------
  nclass : int
      Number of categories for the training dataset.
  backbone : string
      Pre-trained dilated backbone network type (default:'resnet50'; 'resnet50',
      'resnet101' or 'resnet152').
  norm_layer : object
      Normalization layer used in backbone network (default: :class:`mxnet.gluon.nn.BatchNorm`;
  norm_kwargs : dict
      Additional `norm_layer` arguments, for example `num_devices=4`
      for :class:`mxnet.gluon.contrib.nn.SyncBatchNorm`.
  pretrained_base : bool or str
      Refers to if the FCN backbone or the encoder is pretrained or not. If `True`,
      model weights of a model that was trained on ImageNet is loaded.
  
  
  Reference:
  
      Long, Jonathan, Evan Shelhamer, and Trevor Darrell. "Fully convolutional networks
      for semantic segmentation." *CVPR*, 2015
  
  Examples
  --------
  >>> model = FCN(nclass=21, backbone='resnet50')
  >>> print(model)
class_docstr_tok: ["Fully","Convolutional","Networks","for","Semantic","Segmentation","Parameters","--","--","--","--","--","nclass",":","int","Number","of","categories","for","the","training","dataset",".","backbone",":","string","Pre-trained","dilated","backbone","network","type","(","default",":","'resnet50","'",";","'resnet50","'",",","'resnet101","'","or","'resnet152","'",")",".","norm_layer",":","object","Normalization","layer","used","in","backbone","network","(","default",":",":","class",":","`","mxnet.gluon.nn.BatchNorm","`",";","norm_kwargs",":","dict","Additional","`","norm_layer","`","arguments",",","for","example","`","num_devices=4","`","for",":","class",":","`","mxnet.gluon.contrib.nn.SyncBatchNorm","`",".","pretrained_base",":","bool","or","str","Refers","to","if","the","FCN","backbone","or","the","encoder","is","pretrained","or","not",".","If","`","True","`",",","model","weights","of","a","model","that","was","trained","on","ImageNet","is","loaded",".","Reference",":","Long",",","Jonathan",",","Evan","Shelhamer",",","and","Trevor","Darrell",".","``","Fully","convolutional","networks","for","semantic","segmentation",".","''","*","CVPR","*",",","2015","Examples","--","--","--","--",">",">",">","model","=","FCN","(","nclass=21",",","backbone='resnet50","'",")",">",">",">","print","(","model",")"]
code: def __init__(
      self,
      nclass,
      backbone="resnet50",
      aux=True,
      ctx=cpu(),
      pretrained_base=True,
      base_size=520,
      crop_size=480,
      **kwargs,
  ):
      super(FCN, self).__init__(
          nclass,
          aux,
          backbone,
          ctx=ctx,
          base_size=base_size,
          crop_size=crop_size,
          pretrained_base=pretrained_base,
          **kwargs,
      )
      with self.name_scope():
          self.head = _FCNHead(2048, nclass, **kwargs)
          self.head.initialize(ctx=ctx)
          self.head.collect_params().setattr("lr_mult", 10)
          if self.aux:
              self.auxlayer = _FCNHead(1024, nclass, **kwargs)
              self.auxlayer.initialize(ctx=ctx)
              self.auxlayer.collect_params().setattr("lr_mult", 10)
  
file_path: gluon-cv/gluoncv/model_zoo/fcn.py
imports: from __future__ import division
  from mxnet.gluon import nn
  from mxnet.context import cpu
  from mxnet.gluon.nn import HybridBlock
  from .segbase import SegBaseModel
label_desc: Use image node_id 1 to create a new FCN object from inherited base classes: SegBaseModel with example: obj = FCN(nclass, backbone, aux, ctx, pretrained_base, base_size, crop_size)