


print(mod.foo)  # tensor(0.)
           >>> functional_call(mod, a, torch.ones(()))
           >>> print(mod.foo)  # tensor(0.)
           >>> print(a['foo'])  # tensor(1.)



Note:
 If the module has tied weights, whether or not functional_call
 respects the tying is determined by the tie_weights flag.Example:

    >>> a = {'foo': torch.zeros(())}
    >>> mod = Foo()  # has both self.foo and self.foo_tied which are tied. Returns x + self.foo + self.foo_tied
    >>> print(mod.foo)  # tensor(1.)
    >>> mod(torch.zeros(()))  # tensor(2.)
    >>> functional_call(mod, a, torch.zeros(()))  # tensor(0.) since it will change self.foo_tied too
    >>> functional_call(mod, a, torch.zeros(()), tie_weights=False)  # tensor(1.)--self.foo_tied is not updated
    >>> new_a = {'foo', torch.zeros(()), 'foo_tied': torch.zeros(())}
    >>> functional_call(mod, new_a, torch.zeros()) # tensor(0.)

An example of passing mutliple dictionaries