like this:
     A(
         (net_b): Module(
             (net_c): Module(
                 (conv): Conv2d(16, 33, kernel_size=(3, 3), stride=(2, 2))
             )
             (linear): Linear(in_features=100, out_features=200, bias=True)
         )
     )

  (The diagram shows an "nn.Module" "A". "A" has a nested
  submodule "net_b", which itself has two submodules "net_c" and
  "linear". "net_c" then has a submodule "conv".)

  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
