Summary:
They are called as (outputs, inputs) and were named (inputs, outputs).
Possible follow up fix is to make the outputs argument an lvalue to allow for calling multiple post hooks without ever copying outputs vector. It looks like the copy is now forced because the hook takes a const reference as input and returns an value. This would change the prototype of the function, so needs further discussion.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/18140
Differential Revision:
D14684498
Pulled By: pietern
fbshipit-source-id:
1bd3ddbdd1ff7fe0a18241de5a9ec745a4e7ef07
struct FunctionPostHook {
virtual ~FunctionPostHook() = default;
- virtual variable_list operator()(const variable_list& grad_input, const variable_list& grad_output) = 0;
+ virtual variable_list operator()(
+ const variable_list& outputs /* grad_inputs */,
+ const variable_list& inputs /* grad_outputs */) = 0;
};
}} // namespace torch::autograd