code: def create_vision_model(
      arch,
      n_out,
      pretrained=True,
      weights=None,
      cut=None,
      n_in=3,
      init=nn.init.kaiming_normal_,
      custom_head=None,
      concat_pool=True,
      pool=True,
      lin_ftrs=None,
      ps=0.5,
      first_bn=True,
      bn_final=False,
      lin_first=False,
      y_range=None,
  ):
      "Create custom vision architecture"
      meta = model_meta.get(arch, _default_meta)
      if (
          parse(torchvision.__version__) >= parse("0.13")
          and "weights" in meta
      ):
          if weights is not None and not pretrained:
              warn(
                  f"{pretrained=} but `weights` are set {weights=}. To randomly initialize set `pretrained=False` & `weights=None`"
              )
          model = arch(
              weights=meta["weights"]
              if (weights is None and pretrained)
              else weights
          )
      else:
          model = arch(pretrained=pretrained)
      body = create_body(
          model, n_in, pretrained, ifnone(cut, meta["cut"])
      )
      nf = (
          num_features_model(nn.Sequential(*body.children()))
          if custom_head is None
          else None
      )
      return add_head(
          body,
          nf,
          n_out,
          init=init,
          head=custom_head,
          concat_pool=concat_pool,
          pool=pool,
          lin_ftrs=lin_ftrs,
          ps=ps,
          first_bn=first_bn,
          bn_final=bn_final,
          lin_first=lin_first,
          y_range=y_range,
      )
  
imports: from __future__ import annotations
  from packaging.version import parse
  from ..basics import *
  from .core import *
  from .data import *
  from .augment import *
  from .None import models
  import torchvision
  from ..callback.hook import num_features_model
label_desc: Use image node_id 17 for calling a global function with example usage: create_vision_model(arch, n_out, pretrained, weights, cut, n_in, init, custom_head, concat_pool, pool, lin_ftrs, ps, first_bn, bn_final, lin_first, y_range) and returns: add_head