docstr: widen_type: "output_dim" or "kernel"
docstr_tok: ["widen_type",":","``","output_dim","''","or","``","kernel","''"]
code: def widen(
      self,
      loc,
      new_width,
      widen_type="output_dim",
      noise=None,
      image_channel=3,
  ):
      """
      widen_type: "output_dim" or "kernel"
      """
      block_idx = loc["block"]
      if block_idx == 0:
          input_dim = image_channel
      elif isinstance(self.blocks[block_idx - 1], TransitionBlock):
          input_dim = self.blocks[block_idx - 1].out_features_dim
      else:
          input_dim = self.blocks[block_idx - 1].out_features_dim(
              self.blocks[block_idx - 2].out_features_dim
          )
  
      change_out_dim, indices, magnifier = self.blocks[block_idx].widen(
          loc, new_width, widen_type, noise=noise, input_dim=input_dim
      )
      while change_out_dim:
          change_out_dim, indices, magnifier = self.blocks[
              block_idx + 1
          ].prev_widen(indices, magnifier, noise=noise)
          block_idx += 1
  
imports: import tensorflow
  from .basic_model import BasicModel
  from .layers import ConvLayer, FCLayer, PoolLayer, get_magnifier, apply_noise
  from ..data_providers.base_provider import DataProvider
  from .layer_cascade import LayerCascade
  from .layer_multi_branch import LayerMultiBranch
  import numpy
label_desc: Use image node_id 16 for calling the DenseNetConfig obj's underlying member method code with example usage: obj.widen(loc, new_width, widen_type, noise, image_channel) without return types