is in training or evaluation mode.
add_module(name, module)
  Adds a child module to the current module.

  The module can be accessed as an attribute using the given name.

  Parameters:
     * **name** (*str*) -- name of the child module. The child
       module can be accessed from this module using the given
       name

     * **module** (*Module*) -- child module to be added to the
       module.

apply(fn)
  Applies "fn" recursively to every submodule (as returned by
  ".children()") as well as self. Typical use includes
  initializing the parameters of a model (see also torch.nn.init).

  Parameters:
     **fn** ("Module" -> None) -- function to be applied to each
     submodule

  Returns:
     self

  Return type:
     Module

  Example:

     >>> @torch.no_grad()
     >>> def init_weights(m):
     >>>     print(m)
     >>>     if type(m) == nn.Linear:
     >>>         m.weight.fill_(1.0)
