code: def widen(self, loc, new_width, widen_type="output_dim", noise=None):
      if loc["multi-branch"] == "in_bottle":
          assert self.in_bottle is not None, "Invalid"
          change_out_dim, indices, magnifier = self.in_bottle.widen(
              loc["layer"], new_width, widen_type, noise=noise
          )
          if change_out_dim:
              for branch in self.branches:
                  branch.prev_widen(indices, magnifier, noise=noise)
          return False, None, None
      elif loc["multi-branch"] == "out_bottle":
          assert self.out_bottle is not None, "Invalid"
          change_out_dim, indices, magnifier = self.out_bottle.widen(
              loc["layer"], new_width, widen_type, noise=noise
          )
          return change_out_dim, indices, magnifier
      elif loc["multi-branch"] == "branch":
          branch_idx = loc["branch"]
          branch = self.branches[branch_idx]
          old_branch_out_dim = branch.out_features_dim
          change_out_dim, indices, magnifier = branch.widen(
              loc["layer"], new_width, widen_type, noise=noise
          )
          if change_out_dim:
              assert self.merge != "add", "Invalid"
              prev_branch_out_dim = 0
              for _i in range(0, branch_idx):
                  prev_branch_out_dim += self.branches[
                      _i
                  ].out_features_dim
              post_branch_out_dim = 0
              for _i in range(branch_idx + 1, len(self.branches)):
                  post_branch_out_dim += self.branches[
                      _i
                  ].out_features_dim
              old_size = (
                  prev_branch_out_dim
                  + old_branch_out_dim
                  + post_branch_out_dim
              )
              base = np.arange(old_size)
              indices = np.concatenate(
                  [
                      base[:prev_branch_out_dim],
                      indices + prev_branch_out_dim,
                      base[prev_branch_out_dim + old_branch_out_dim :],
                  ]
              )
              magnifier = np.concatenate(
                  [
                      [1] * prev_branch_out_dim,
                      magnifier,
                      [1] * post_branch_out_dim,
                  ]
              )
              if self.out_bottle is None:
                  return True, indices, magnifier
              else:
                  self.out_bottle.prev_widen(
                      indices, magnifier, noise=noise
                  )
                  return False, None, None
          else:
              return False, None, None
      else:
          raise ValueError("Do not support %s" % loc["multi-branch"])
  
file_path: auptimizer/src/aup/Proposer/eas/models/layer_multi_branch.py
imports: import tensorflow
  import numpy
  from .layer_cascade import LayerCascade
label_desc: Use image node_id 12 for calling the LayerMultiBranch obj's underlying member method code with example usage: obj.widen(loc, new_width, widen_type, noise) and returns: False,  None,  None, change_out_dim,  indices,  magnifier, False,  None,  None, True,  indices,  magnifier, False,  None,  None