To check whether or not we have the "linear" submodule, we would
      call "get_submodule("net_b.linear")". To check whether we have
      the "conv" submodule, we would call
      "get_submodule("net_b.net_c.conv")".
  The runtime of "get_submodule" is bounded by the degree of
  module nesting in "target". A query against "named_modules"
  achieves the same result, but it is O(N) in the number of
  transitive modules. So, for a simple check to see if some
  submodule exists, "get_submodule" should always be used.

  Parameters:
     **target** (*str*) -- The fully-qualified string name of the
     submodule to look for. (See above example for how to specify
     a fully-qualified string.)

  Returns:
     The submodule referenced by "target"

  Return type:
     torch.nn.Module

  Raises:
     **AttributeError** -- If the target string references an
     invalid     path or resolves to something that is not an
     "nn.Module"
