returns a "ScriptModule" object with a single "forward" method
      containing the traced code.  The returned ScriptModule will
      have the same set of sub-modules and parameters as the original
      "nn.Module".  If "func" is a standalone function, "trace"
      returns ScriptFunction.
Example (tracing a function):
  import torch

  def foo(x, y):
      return 2 * x + y

  # Run `foo` with the provided inputs and record the tensor operations
  traced_foo = torch.jit.trace(foo, (torch.rand(3), torch.rand(3)))

  # `traced_foo` can now be run with the TorchScript interpreter or saved
  # and loaded in a Python-free environment

Example (tracing an existing module):
  import torch
  import torch.nn as nn

  class Net(nn.Module):
      def __init__(self):
          super(Net, self).__init__()
          self.conv = nn.Conv2d(1, 1, 3)

      def forward(self, x):
          return self.conv(x)

  n = Net()
