I am using Declarations.yaml to generate bindings for the torch API. One thing I’m a little confused by is that several operations seem to be specified in Declarations.yaml without default, but present in torch.nn.functional with defaults. For example, poisson_nll_loss has defaults here, but in Declarations.yaml, the schema string is aten::poisson_nll_loss(Tensor input, Tensor target, bool log_input, bool full, float eps, int reduction) -> Tensor.
Is there a reason for this? Is there some subtle difference between the call in torch.nn.functional and the underlying op?