#pragma once // @generated from tools/autograd/templates/Functions.h #include #include #include #include "torch/csrc/THP_export.h" #include "torch/csrc/autograd/function.h" #include "torch/csrc/autograd/variable.h" #include "torch/csrc/autograd/saved_variable.h" #include namespace torch { namespace autograd { namespace generated { using at::Scalar; using at::Tensor; using at::IntArrayRef; using at::Type; using at::TensorGeometry; using at::ScalarType; using c10::optional; using c10::fmap; inline std::vector unpack_list(at::ArrayRef xs) { // NB: we must explicitly do the conversion in the lambda, otherwise template // deduction will give a Tensor of Variable which is not convertible return fmap(xs, [](const SavedVariable& x) { return static_cast(x.unpack()); }); } struct TypeAndSize { TypeAndSize() : type(nullptr) {} /* implicit */ TypeAndSize(const Tensor & t) : sizes(t.sizes().vec()) , type(&t.type()) {} Tensor zeros() { return at::zeros(sizes, *type); } private: std::vector sizes; at::DeprecatedTypeProperties* type; }; struct TORCH_API AbsBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AbsBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; }; struct TORCH_API AcosBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AcosBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; }; struct TORCH_API AddBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AddBackward0"; } void release_variables() override { } Scalar alpha; }; struct TORCH_API AddBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AddBackward1"; } void release_variables() override { } }; struct TORCH_API AddbmmBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AddbmmBackward"; } void release_variables() override { batch2_.reset_data(); batch2_.reset_grad_function(); batch1_.reset_data(); batch1_.reset_grad_function(); } int64_t batch1_argsize_0 = 0; int64_t batch1_argsize_1 = 0; int64_t batch2_argsize_2 = 0; SavedVariable batch2_; Scalar alpha; SavedVariable batch1_; Scalar beta; }; struct TORCH_API AddcdivBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AddcdivBackward"; } void release_variables() override { tensor2_.reset_data(); tensor2_.reset_grad_function(); tensor1_.reset_data(); tensor1_.reset_grad_function(); } SavedVariable tensor2_; Scalar value; SavedVariable tensor1_; }; struct TORCH_API AddcmulBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AddcmulBackward"; } void release_variables() override { tensor2_.reset_data(); tensor2_.reset_grad_function(); tensor1_.reset_data(); tensor1_.reset_grad_function(); } SavedVariable tensor2_; Scalar value; SavedVariable tensor1_; }; struct TORCH_API AddmmBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AddmmBackward"; } void release_variables() override { mat1_.reset_data(); mat1_.reset_grad_function(); mat2_.reset_data(); mat2_.reset_grad_function(); } SavedVariable mat1_; SavedVariable mat2_; Scalar alpha; std::vector mat2_sizes; Scalar beta; }; struct TORCH_API SparseAddmmBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SparseAddmmBackward"; } void release_variables() override { sparse_.reset_data(); sparse_.reset_grad_function(); dense_.reset_data(); dense_.reset_grad_function(); } SavedVariable sparse_; std::vector dense_sizes; SavedVariable dense_; Scalar alpha; Scalar beta; }; struct TORCH_API AddmvBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AddmvBackward"; } void release_variables() override { vec_.reset_data(); vec_.reset_grad_function(); mat_.reset_data(); mat_.reset_grad_function(); } SavedVariable vec_; Scalar alpha; Scalar beta; SavedVariable mat_; }; struct TORCH_API AddrBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AddrBackward"; } void release_variables() override { vec2_.reset_data(); vec2_.reset_grad_function(); vec1_.reset_data(); vec1_.reset_grad_function(); } Scalar beta; SavedVariable vec2_; Scalar alpha; SavedVariable vec1_; }; struct TORCH_API AffineGridGeneratorBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AffineGridGeneratorBackward"; } void release_variables() override { } std::vector size; bool align_corners; }; struct TORCH_API AliasBackward : public Node { using Node::Node; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AliasBackward"; } void release_variables() override { } }; struct TORCH_API AnyBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AnyBackward0"; } void release_variables() override { } }; struct TORCH_API AnyBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AnyBackward1"; } void release_variables() override { } }; struct TORCH_API AllBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AllBackward0"; } void release_variables() override { } }; struct TORCH_API AllBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AllBackward1"; } void release_variables() override { } }; struct TORCH_API AsStridedBackward : public Node { using Node::Node; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AsStridedBackward"; } void release_variables() override { } TensorGeometry self_geometry; std::vector size; std::vector stride; c10::optional storage_offset; }; struct TORCH_API AsinBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AsinBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; }; struct TORCH_API AtanBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AtanBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; }; struct TORCH_API Atan2Backward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "Atan2Backward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); other_.reset_data(); other_.reset_grad_function(); } SavedVariable self_; SavedVariable other_; }; struct TORCH_API BaddbmmBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "BaddbmmBackward"; } void release_variables() override { batch2_.reset_data(); batch2_.reset_grad_function(); batch1_.reset_data(); batch1_.reset_grad_function(); } SavedVariable batch2_; Scalar alpha; SavedVariable batch1_; Scalar beta; }; struct TORCH_API BernoulliBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "BernoulliBackward0"; } void release_variables() override { } }; struct TORCH_API BernoulliBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "BernoulliBackward1"; } void release_variables() override { } TypeAndSize p_info; }; struct TORCH_API BernoulliBackward2 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "BernoulliBackward2"; } void release_variables() override { } }; struct TORCH_API BmmBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "BmmBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); mat2_.reset_data(); mat2_.reset_grad_function(); } SavedVariable self_; SavedVariable mat2_; }; struct TORCH_API CatBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CatBackward"; } void release_variables() override { } std::vector> tensors_args_sizes; int64_t dim = 0; size_t tensors_size_; }; struct TORCH_API CauchyBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CauchyBackward"; } void release_variables() override { } }; struct TORCH_API CeilBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CeilBackward"; } void release_variables() override { } }; struct TORCH_API CholeskyBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CholeskyBackward"; } void release_variables() override { result_.reset_data(); result_.reset_grad_function(); } bool upper; SavedVariable result_; }; struct TORCH_API CholeskySolveBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CholeskySolveBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); input2_.reset_data(); input2_.reset_grad_function(); result_.reset_data(); result_.reset_grad_function(); } SavedVariable self_; SavedVariable input2_; bool upper; SavedVariable result_; }; struct TORCH_API CholeskyInverseBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CholeskyInverseBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result_.reset_data(); result_.reset_grad_function(); } SavedVariable self_; bool upper; SavedVariable result_; }; struct TORCH_API ClampBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ClampBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; c10::optional min; c10::optional max; }; struct TORCH_API ClampMinBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ClampMinBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; Scalar min; }; struct TORCH_API ClampMaxBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ClampMaxBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; Scalar max; }; struct TORCH_API CloneBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CloneBackward"; } void release_variables() override { } }; struct TORCH_API CoalesceBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CoalesceBackward"; } void release_variables() override { } }; struct TORCH_API CosBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CosBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; }; struct TORCH_API CoshBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CoshBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; }; struct TORCH_API CrossBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CrossBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); other_.reset_data(); other_.reset_grad_function(); } SavedVariable self_; c10::optional dim; SavedVariable other_; }; struct TORCH_API CumprodBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CumprodBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } ScalarType self_scalar_type; SavedVariable self_; int64_t dim = 0; }; struct TORCH_API CumsumBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CumsumBackward"; } void release_variables() override { } ScalarType self_scalar_type; int64_t dim = 0; }; struct TORCH_API ConvTbcBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ConvTbcBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); bias_.reset_data(); bias_.reset_grad_function(); } SavedVariable self_; SavedVariable weight_; SavedVariable bias_; int64_t pad = 0; }; struct TORCH_API CtcLossBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CtcLossBackward"; } void release_variables() override { log_probs_.reset_data(); log_probs_.reset_grad_function(); targets_.reset_data(); targets_.reset_grad_function(); result0_.reset_data(); result0_.reset_grad_function(); result1_.reset_data(); result1_.reset_grad_function(); } SavedVariable log_probs_; SavedVariable targets_; std::vector input_lengths; std::vector target_lengths; int64_t blank = 0; bool zero_infinity; SavedVariable result0_; SavedVariable result1_; }; struct TORCH_API DetBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "DetBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result_.reset_data(); result_.reset_grad_function(); } SavedVariable self_; SavedVariable result_; }; struct TORCH_API DiagBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "DiagBackward"; } void release_variables() override { } std::vector self_sizes; int64_t diagonal = 0; }; struct TORCH_API DiagonalBackward : public Node { using Node::Node; variable_list apply(variable_list&& grads) override; std::string name() const override { return "DiagonalBackward"; } void release_variables() override { } std::vector self_sizes; int64_t offset = 0; int64_t dim1 = 0; int64_t dim2 = 0; }; struct TORCH_API DistBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "DistBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); other_.reset_data(); other_.reset_grad_function(); result_.reset_data(); result_.reset_grad_function(); } SavedVariable self_; SavedVariable other_; Scalar p; SavedVariable result_; }; struct TORCH_API DivBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "DivBackward0"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); other_.reset_data(); other_.reset_grad_function(); } SavedVariable self_; SavedVariable other_; }; struct TORCH_API DivBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "DivBackward1"; } void release_variables() override { } Scalar other; }; struct TORCH_API DotBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "DotBackward"; } void release_variables() override { tensor_.reset_data(); tensor_.reset_grad_function(); self_.reset_data(); self_.reset_grad_function(); } SavedVariable tensor_; SavedVariable self_; }; struct TORCH_API FusedDropoutBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "FusedDropoutBackward"; } void release_variables() override { result1_.reset_data(); result1_.reset_grad_function(); } double p; SavedVariable result1_; }; struct TORCH_API EigBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "EigBackward"; } void release_variables() override { } }; struct TORCH_API EqBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "EqBackward0"; } void release_variables() override { } TypeAndSize self_info; }; struct TORCH_API EqBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "EqBackward1"; } void release_variables() override { } TypeAndSize other_info; TypeAndSize self_info; }; struct TORCH_API ErfBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ErfBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; }; struct TORCH_API ErfcBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ErfcBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; }; struct TORCH_API ErfinvBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ErfinvBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; }; struct TORCH_API ExpBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ExpBackward"; } void release_variables() override { result_.reset_data(); result_.reset_grad_function(); } SavedVariable result_; }; struct TORCH_API Expm1Backward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "Expm1Backward"; } void release_variables() override { result_.reset_data(); result_.reset_grad_function(); } SavedVariable result_; }; struct TORCH_API ExpandBackward : public Node { using Node::Node; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ExpandBackward"; } void release_variables() override { } std::vector self_sizes; }; struct TORCH_API ExponentialBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ExponentialBackward"; } void release_variables() override { } }; struct TORCH_API FakeQuantizePerTensorAffineBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "FakeQuantizePerTensorAffineBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; double scale; int64_t zero_point = 0; int64_t quant_min = 0; int64_t quant_max = 0; }; struct TORCH_API FakeQuantizePerChannelAffineBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "FakeQuantizePerChannelAffineBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); scale_.reset_data(); scale_.reset_grad_function(); zero_point_.reset_data(); zero_point_.reset_grad_function(); } SavedVariable self_; SavedVariable scale_; SavedVariable zero_point_; int64_t axis = 0; int64_t quant_min = 0; int64_t quant_max = 0; }; struct TORCH_API FillBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "FillBackward0"; } void release_variables() override { } }; struct TORCH_API FillBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "FillBackward1"; } void release_variables() override { } }; struct TORCH_API FloorBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "FloorBackward"; } void release_variables() override { } }; struct TORCH_API FmodBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "FmodBackward0"; } void release_variables() override { } }; struct TORCH_API FmodBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "FmodBackward1"; } void release_variables() override { other_.reset_data(); other_.reset_grad_function(); } SavedVariable other_; }; struct TORCH_API FracBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "FracBackward"; } void release_variables() override { } }; struct TORCH_API GatherBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "GatherBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); index_.reset_data(); index_.reset_grad_function(); } std::vector self_sizes; SavedVariable self_; int64_t dim = 0; SavedVariable index_; bool sparse_grad; }; struct TORCH_API GeBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "GeBackward0"; } void release_variables() override { } TypeAndSize self_info; }; struct TORCH_API GeBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "GeBackward1"; } void release_variables() override { } TypeAndSize other_info; TypeAndSize self_info; }; struct TORCH_API GeometricBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "GeometricBackward"; } void release_variables() override { } }; struct TORCH_API GeqrfBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "GeqrfBackward"; } void release_variables() override { } }; struct TORCH_API GerBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "GerBackward"; } void release_variables() override { vec2_.reset_data(); vec2_.reset_grad_function(); self_.reset_data(); self_.reset_grad_function(); } SavedVariable vec2_; SavedVariable self_; }; struct TORCH_API GridSampler2DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "GridSampler2DBackward"; } void release_variables() override { input_.reset_data(); input_.reset_grad_function(); grid_.reset_data(); grid_.reset_grad_function(); } SavedVariable input_; SavedVariable grid_; int64_t interpolation_mode = 0; int64_t padding_mode = 0; bool align_corners; }; struct TORCH_API GridSampler3DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "GridSampler3DBackward"; } void release_variables() override { input_.reset_data(); input_.reset_grad_function(); grid_.reset_data(); grid_.reset_grad_function(); } SavedVariable input_; SavedVariable grid_; int64_t interpolation_mode = 0; int64_t padding_mode = 0; bool align_corners; }; struct TORCH_API GtBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "GtBackward0"; } void release_variables() override { } TypeAndSize self_info; }; struct TORCH_API GtBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "GtBackward1"; } void release_variables() override { } TypeAndSize other_info; TypeAndSize self_info; }; struct TORCH_API HistcBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "HistcBackward"; } void release_variables() override { } }; struct TORCH_API IndexBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "IndexBackward"; } void release_variables() override { indices_.clear(); indices_released_ = true; } TypeAndSize self_info; std::vector indices_; bool indices_released_ = false; size_t indices_size_; }; struct TORCH_API IndexAddBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "IndexAddBackward"; } void release_variables() override { index_.reset_data(); index_.reset_grad_function(); } int64_t dim = 0; SavedVariable index_; }; struct TORCH_API IndexCopyBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "IndexCopyBackward"; } void release_variables() override { index_.reset_data(); index_.reset_grad_function(); } int64_t dim = 0; SavedVariable index_; }; struct TORCH_API IndexFillBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "IndexFillBackward0"; } void release_variables() override { index_.reset_data(); index_.reset_grad_function(); } int64_t dim = 0; SavedVariable index_; }; struct TORCH_API IndexFillBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "IndexFillBackward1"; } void release_variables() override { index_.reset_data(); index_.reset_grad_function(); } int64_t dim = 0; SavedVariable index_; }; struct TORCH_API IndexPutBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "IndexPutBackward"; } void release_variables() override { indices_.clear(); indices_released_ = true; } std::vector indices_; bool indices_released_ = false; TypeAndSize values_info; bool accumulate; }; struct TORCH_API IndexPutImplBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "IndexPutImplBackward"; } void release_variables() override { indices_.clear(); indices_released_ = true; } std::vector indices_; bool indices_released_ = false; TypeAndSize values_info; bool accumulate; }; struct TORCH_API IndexSelectBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "IndexSelectBackward"; } void release_variables() override { index_.reset_data(); index_.reset_grad_function(); } std::vector self_sizes; int64_t dim = 0; SavedVariable index_; }; struct TORCH_API InverseBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "InverseBackward"; } void release_variables() override { result_.reset_data(); result_.reset_grad_function(); } SavedVariable result_; }; struct TORCH_API KthvalueBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "KthvalueBackward"; } void release_variables() override { indices_.reset_data(); indices_.reset_grad_function(); } std::vector self_sizes; int64_t dim = 0; bool keepdim; SavedVariable indices_; }; struct TORCH_API LeBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "LeBackward0"; } void release_variables() override { } TypeAndSize self_info; }; struct TORCH_API LeBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "LeBackward1"; } void release_variables() override { } TypeAndSize other_info; TypeAndSize self_info; }; struct TORCH_API LerpBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "LerpBackward0"; } void release_variables() override { } Scalar weight; }; struct TORCH_API LerpBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "LerpBackward1"; } void release_variables() override { weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable weight_; }; struct TORCH_API LgammaBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "LgammaBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; }; struct TORCH_API DigammaBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "DigammaBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; }; struct TORCH_API PolygammaBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "PolygammaBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } int64_t n = 0; SavedVariable self_; }; struct TORCH_API LogBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "LogBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; }; struct TORCH_API Log10Backward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "Log10Backward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; }; struct TORCH_API Log1PBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "Log1PBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; }; struct TORCH_API Log2Backward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "Log2Backward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; }; struct TORCH_API LogdetBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "LogdetBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result_.reset_data(); result_.reset_grad_function(); } SavedVariable self_; SavedVariable result_; }; struct TORCH_API LogNormalBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "LogNormalBackward"; } void release_variables() override { } }; struct TORCH_API LogsumexpBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "LogsumexpBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result_.reset_data(); result_.reset_grad_function(); } SavedVariable self_; std::vector dim; bool keepdim; SavedVariable result_; }; struct TORCH_API LstsqBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "LstsqBackward"; } void release_variables() override { } }; struct TORCH_API LtBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "LtBackward0"; } void release_variables() override { } TypeAndSize self_info; }; struct TORCH_API LtBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "LtBackward1"; } void release_variables() override { } TypeAndSize other_info; TypeAndSize self_info; }; struct TORCH_API LuWithInfoBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "LuWithInfoBackward"; } void release_variables() override { } }; struct TORCH_API LuSolveBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "LuSolveBackward"; } void release_variables() override { } }; struct TORCH_API MaskedFillBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MaskedFillBackward0"; } void release_variables() override { mask_.reset_data(); mask_.reset_grad_function(); } SavedVariable mask_; }; struct TORCH_API MaskedFillBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MaskedFillBackward1"; } void release_variables() override { mask_.reset_data(); mask_.reset_grad_function(); } SavedVariable mask_; }; struct TORCH_API MaskedScatterBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MaskedScatterBackward"; } void release_variables() override { mask_.reset_data(); mask_.reset_grad_function(); } SavedVariable mask_; std::vector source_sizes; }; struct TORCH_API MaskedSelectBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MaskedSelectBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); mask_.reset_data(); mask_.reset_grad_function(); } std::vector self_sizes; SavedVariable self_; std::vector mask_sizes; SavedVariable mask_; }; struct TORCH_API MaxBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MaxBackward0"; } void release_variables() override { indices_.reset_data(); indices_.reset_grad_function(); } std::vector self_sizes; int64_t dim = 0; bool keepdim; SavedVariable indices_; }; struct TORCH_API MaxBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MaxBackward1"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result_.reset_data(); result_.reset_grad_function(); } SavedVariable self_; SavedVariable result_; }; struct TORCH_API MaxBackward2 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MaxBackward2"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); other_.reset_data(); other_.reset_grad_function(); } SavedVariable self_; SavedVariable other_; }; struct TORCH_API MeanBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MeanBackward0"; } void release_variables() override { } std::vector self_sizes; int64_t self_numel = 0; ScalarType self_scalar_type; }; struct TORCH_API MeanBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MeanBackward1"; } void release_variables() override { } std::vector self_sizes; ScalarType self_scalar_type; std::vector dim; bool keepdim; }; struct TORCH_API MedianBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MedianBackward0"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result_.reset_data(); result_.reset_grad_function(); } SavedVariable self_; SavedVariable result_; }; struct TORCH_API MedianBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MedianBackward1"; } void release_variables() override { indices_.reset_data(); indices_.reset_grad_function(); } std::vector self_sizes; int64_t dim = 0; bool keepdim; SavedVariable indices_; }; struct TORCH_API MinBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MinBackward0"; } void release_variables() override { indices_.reset_data(); indices_.reset_grad_function(); } std::vector self_sizes; int64_t dim = 0; bool keepdim; SavedVariable indices_; }; struct TORCH_API MinBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MinBackward1"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result_.reset_data(); result_.reset_grad_function(); } SavedVariable self_; SavedVariable result_; }; struct TORCH_API MinBackward2 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MinBackward2"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); other_.reset_data(); other_.reset_grad_function(); } SavedVariable self_; SavedVariable other_; }; struct TORCH_API MmBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MmBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); mat2_.reset_data(); mat2_.reset_grad_function(); } SavedVariable self_; std::vector mat2_sizes; SavedVariable mat2_; }; struct TORCH_API ModeBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ModeBackward"; } void release_variables() override { indices_.reset_data(); indices_.reset_grad_function(); } std::vector self_sizes; int64_t dim = 0; bool keepdim; SavedVariable indices_; }; struct TORCH_API MulBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MulBackward0"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); other_.reset_data(); other_.reset_grad_function(); } SavedVariable self_; SavedVariable other_; }; struct TORCH_API MulBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MulBackward1"; } void release_variables() override { } Scalar other; }; struct TORCH_API MvBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MvBackward"; } void release_variables() override { vec_.reset_data(); vec_.reset_grad_function(); self_.reset_data(); self_.reset_grad_function(); } SavedVariable vec_; SavedVariable self_; }; struct TORCH_API MvlgammaBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MvlgammaBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; int64_t p = 0; }; struct TORCH_API NativeBatchNormBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "NativeBatchNormBackward"; } void release_variables() override { input_.reset_data(); input_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); running_mean_.reset_data(); running_mean_.reset_grad_function(); running_var_.reset_data(); running_var_.reset_grad_function(); result1_.reset_data(); result1_.reset_grad_function(); result2_.reset_data(); result2_.reset_grad_function(); } SavedVariable input_; SavedVariable weight_; SavedVariable running_mean_; SavedVariable running_var_; bool training; double eps; SavedVariable result1_; SavedVariable result2_; }; struct TORCH_API NativeBatchNormBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "NativeBatchNormBackwardBackward"; } void release_variables() override { grad_out_.reset_data(); grad_out_.reset_grad_function(); input_.reset_data(); input_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); running_mean_.reset_data(); running_mean_.reset_grad_function(); running_var_.reset_data(); running_var_.reset_grad_function(); save_mean_.reset_data(); save_mean_.reset_grad_function(); save_invstd_.reset_data(); save_invstd_.reset_grad_function(); } SavedVariable grad_out_; SavedVariable input_; SavedVariable weight_; SavedVariable running_mean_; SavedVariable running_var_; SavedVariable save_mean_; SavedVariable save_invstd_; bool train; double eps; }; struct TORCH_API NativeLayerNormBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "NativeLayerNormBackward"; } void release_variables() override { input_.reset_data(); input_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); result1_.reset_data(); result1_.reset_grad_function(); result2_.reset_data(); result2_.reset_grad_function(); } SavedVariable input_; SavedVariable weight_; int64_t M = 0; int64_t N = 0; SavedVariable result1_; SavedVariable result2_; }; struct TORCH_API NativeLayerNormBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "NativeLayerNormBackwardBackward"; } void release_variables() override { grad_out_.reset_data(); grad_out_.reset_grad_function(); input_.reset_data(); input_.reset_grad_function(); mean_.reset_data(); mean_.reset_grad_function(); rstd_.reset_data(); rstd_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable grad_out_; SavedVariable input_; SavedVariable mean_; SavedVariable rstd_; SavedVariable weight_; int64_t M = 0; int64_t N = 0; }; struct TORCH_API NeBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "NeBackward0"; } void release_variables() override { } TypeAndSize self_info; }; struct TORCH_API NeBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "NeBackward1"; } void release_variables() override { } TypeAndSize other_info; TypeAndSize self_info; }; struct TORCH_API NegBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "NegBackward"; } void release_variables() override { } }; struct TORCH_API NormBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "NormBackward0"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result_.reset_data(); result_.reset_grad_function(); } SavedVariable self_; Scalar p; SavedVariable result_; }; struct TORCH_API NormBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "NormBackward1"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result_.reset_data(); result_.reset_grad_function(); } SavedVariable self_; c10::optional p; std::vector dim; bool keepdim; SavedVariable result_; }; struct TORCH_API NormBackward2 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "NormBackward2"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result_.reset_data(); result_.reset_grad_function(); } SavedVariable self_; c10::optional p; SavedVariable result_; }; struct TORCH_API NormBackward3 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "NormBackward3"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result_.reset_data(); result_.reset_grad_function(); } SavedVariable self_; c10::optional p; std::vector dim; bool keepdim; SavedVariable result_; }; struct TORCH_API PdistBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "PdistBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result_.reset_data(); result_.reset_grad_function(); } SavedVariable self_; double p; SavedVariable result_; }; struct TORCH_API PdistBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "PdistBackwardBackward"; } void release_variables() override { } }; struct TORCH_API CdistBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CdistBackward"; } void release_variables() override { x1_.reset_data(); x1_.reset_grad_function(); x2_.reset_data(); x2_.reset_grad_function(); result_.reset_data(); result_.reset_grad_function(); } SavedVariable x1_; SavedVariable x2_; double p; SavedVariable result_; }; struct TORCH_API CdistBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CdistBackwardBackward"; } void release_variables() override { } }; struct TORCH_API NormalBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "NormalBackward0"; } void release_variables() override { } }; struct TORCH_API NormalBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "NormalBackward1"; } void release_variables() override { } std::vector mean_sizes; }; struct TORCH_API NormalBackward2 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "NormalBackward2"; } void release_variables() override { } std::vector std_sizes; }; struct TORCH_API NormalBackward3 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "NormalBackward3"; } void release_variables() override { } std::vector mean_sizes; std::vector std_sizes; }; struct TORCH_API OrgqrBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "OrgqrBackward"; } void release_variables() override { } }; struct TORCH_API OrmqrBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "OrmqrBackward"; } void release_variables() override { } }; struct TORCH_API PermuteBackward : public Node { using Node::Node; variable_list apply(variable_list&& grads) override; std::string name() const override { return "PermuteBackward"; } void release_variables() override { } std::vector dims; }; struct TORCH_API PoissonBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "PoissonBackward"; } void release_variables() override { } TypeAndSize self_info; }; struct TORCH_API PowBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "PowBackward0"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; Scalar exponent; }; struct TORCH_API PowBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "PowBackward1"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); exponent_.reset_data(); exponent_.reset_grad_function(); } SavedVariable self_; SavedVariable exponent_; }; struct TORCH_API PowBackward2 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "PowBackward2"; } void release_variables() override { exponent_.reset_data(); exponent_.reset_grad_function(); } Scalar self; SavedVariable exponent_; }; struct TORCH_API ProdBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ProdBackward0"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result_.reset_data(); result_.reset_grad_function(); } SavedVariable self_; SavedVariable result_; }; struct TORCH_API ProdBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ProdBackward1"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result_.reset_data(); result_.reset_grad_function(); } SavedVariable self_; int64_t dim = 0; bool keepdim; SavedVariable result_; }; struct TORCH_API PutBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "PutBackward"; } void release_variables() override { index_.reset_data(); index_.reset_grad_function(); } SavedVariable index_; TypeAndSize source_info; bool accumulate; }; struct TORCH_API QrBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "QrBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); Q_.reset_data(); Q_.reset_grad_function(); R_.reset_data(); R_.reset_grad_function(); } SavedVariable self_; bool some; SavedVariable Q_; SavedVariable R_; }; struct TORCH_API RandomBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "RandomBackward0"; } void release_variables() override { } }; struct TORCH_API RandomBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "RandomBackward1"; } void release_variables() override { } }; struct TORCH_API RandomBackward2 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "RandomBackward2"; } void release_variables() override { } }; struct TORCH_API ReciprocalBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ReciprocalBackward"; } void release_variables() override { result_.reset_data(); result_.reset_grad_function(); } SavedVariable result_; }; struct TORCH_API RemainderBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "RemainderBackward0"; } void release_variables() override { } }; struct TORCH_API RemainderBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "RemainderBackward1"; } void release_variables() override { } }; struct TORCH_API RenormBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "RenormBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; Scalar p; int64_t dim = 0; Scalar maxnorm; }; struct TORCH_API RepeatBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "RepeatBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; std::vector repeats; }; struct TORCH_API RoundBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "RoundBackward"; } void release_variables() override { } }; struct TORCH_API RsqrtBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "RsqrtBackward"; } void release_variables() override { result_.reset_data(); result_.reset_grad_function(); } SavedVariable result_; }; struct TORCH_API ScatterBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ScatterBackward0"; } void release_variables() override { index_.reset_data(); index_.reset_grad_function(); } int64_t dim = 0; SavedVariable index_; }; struct TORCH_API ScatterBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ScatterBackward1"; } void release_variables() override { index_.reset_data(); index_.reset_grad_function(); } int64_t dim = 0; SavedVariable index_; }; struct TORCH_API ScatterAddBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ScatterAddBackward"; } void release_variables() override { index_.reset_data(); index_.reset_grad_function(); } int64_t dim = 0; SavedVariable index_; }; struct TORCH_API SelectBackward : public Node { using Node::Node; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SelectBackward"; } void release_variables() override { } std::vector self_sizes; int64_t dim = 0; int64_t index = 0; }; struct TORCH_API SigmoidBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SigmoidBackward"; } void release_variables() override { result_.reset_data(); result_.reset_grad_function(); } SavedVariable result_; }; struct TORCH_API SignBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SignBackward"; } void release_variables() override { } }; struct TORCH_API SinBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SinBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; }; struct TORCH_API SinhBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SinhBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; }; struct TORCH_API SliceBackward : public Node { using Node::Node; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SliceBackward"; } void release_variables() override { } std::vector self_sizes; int64_t dim = 0; int64_t start = 0; int64_t end = 0; int64_t step = 0; }; struct TORCH_API SlogdetBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SlogdetBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); sign_.reset_data(); sign_.reset_grad_function(); logabsdet_.reset_data(); logabsdet_.reset_grad_function(); } SavedVariable self_; SavedVariable sign_; SavedVariable logabsdet_; }; struct TORCH_API SolveBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SolveBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); A_.reset_data(); A_.reset_grad_function(); solution_.reset_data(); solution_.reset_grad_function(); } SavedVariable self_; SavedVariable A_; SavedVariable solution_; }; struct TORCH_API SortBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SortBackward"; } void release_variables() override { indices_.reset_data(); indices_.reset_grad_function(); } std::vector self_sizes; int64_t dim = 0; SavedVariable indices_; }; struct TORCH_API SplitBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SplitBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } std::vector self_sizes; SavedVariable self_; int64_t split_size = 0; int64_t dim = 0; }; struct TORCH_API SplitWithSizesBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SplitWithSizesBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } std::vector self_sizes; SavedVariable self_; std::vector split_sizes; int64_t dim = 0; }; struct TORCH_API SqrtBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SqrtBackward"; } void release_variables() override { result_.reset_data(); result_.reset_grad_function(); } SavedVariable result_; }; struct TORCH_API SqueezeBackward0 : public Node { using Node::Node; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SqueezeBackward0"; } void release_variables() override { } std::vector self_sizes; }; struct TORCH_API SqueezeBackward1 : public Node { using Node::Node; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SqueezeBackward1"; } void release_variables() override { } std::vector self_sizes; int64_t dim = 0; }; struct TORCH_API SqueezeBackward2 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SqueezeBackward2"; } void release_variables() override { } std::vector self_sizes; }; struct TORCH_API SqueezeBackward3 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SqueezeBackward3"; } void release_variables() override { } std::vector self_sizes; int64_t dim = 0; }; struct TORCH_API StdBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "StdBackward0"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result_.reset_data(); result_.reset_grad_function(); } SavedVariable self_; bool unbiased; SavedVariable result_; }; struct TORCH_API StdBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "StdBackward1"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result_.reset_data(); result_.reset_grad_function(); } SavedVariable self_; std::vector dim; bool unbiased; bool keepdim; SavedVariable result_; }; struct TORCH_API SubBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SubBackward0"; } void release_variables() override { } Scalar alpha; }; struct TORCH_API SubBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SubBackward1"; } void release_variables() override { } }; struct TORCH_API RsubBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "RsubBackward0"; } void release_variables() override { } Scalar alpha; }; struct TORCH_API RsubBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "RsubBackward1"; } void release_variables() override { } Scalar alpha; }; struct TORCH_API SumBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SumBackward0"; } void release_variables() override { } std::vector self_sizes; }; struct TORCH_API SumBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SumBackward1"; } void release_variables() override { } std::vector self_sizes; std::vector dim; bool keepdim; }; struct TORCH_API SvdBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SvdBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); U_.reset_data(); U_.reset_grad_function(); S_.reset_data(); S_.reset_grad_function(); V_.reset_data(); V_.reset_grad_function(); } SavedVariable self_; bool some; bool compute_uv; SavedVariable U_; SavedVariable S_; SavedVariable V_; }; struct TORCH_API SymeigBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SymeigBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); eigenvalues_.reset_data(); eigenvalues_.reset_grad_function(); eigenvectors_return_.reset_data(); eigenvectors_return_.reset_grad_function(); } SavedVariable self_; bool eigenvectors; bool upper; SavedVariable eigenvalues_; SavedVariable eigenvectors_return_; }; struct TORCH_API TBackward : public Node { using Node::Node; variable_list apply(variable_list&& grads) override; std::string name() const override { return "TBackward"; } void release_variables() override { } }; struct TORCH_API FlipBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "FlipBackward"; } void release_variables() override { } std::vector dims; }; struct TORCH_API RollBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "RollBackward"; } void release_variables() override { } std::vector shifts; std::vector dims; }; struct TORCH_API Rot90Backward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "Rot90Backward"; } void release_variables() override { } int64_t k = 0; std::vector dims; }; struct TORCH_API TakeBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "TakeBackward"; } void release_variables() override { index_.reset_data(); index_.reset_grad_function(); } TypeAndSize self_info; SavedVariable index_; }; struct TORCH_API TanBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "TanBackward"; } void release_variables() override { result_.reset_data(); result_.reset_grad_function(); } SavedVariable result_; }; struct TORCH_API TanhBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "TanhBackward"; } void release_variables() override { result_.reset_data(); result_.reset_grad_function(); } SavedVariable result_; }; struct TORCH_API TopkBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "TopkBackward"; } void release_variables() override { indices_.reset_data(); indices_.reset_grad_function(); } std::vector self_sizes; int64_t dim = 0; SavedVariable indices_; }; struct TORCH_API TraceBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "TraceBackward"; } void release_variables() override { } std::vector self_sizes; }; struct TORCH_API TransposeBackward0 : public Node { using Node::Node; variable_list apply(variable_list&& grads) override; std::string name() const override { return "TransposeBackward0"; } void release_variables() override { } int64_t dim0 = 0; int64_t dim1 = 0; }; struct TORCH_API TransposeBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "TransposeBackward1"; } void release_variables() override { } int64_t dim0 = 0; int64_t dim1 = 0; }; struct TORCH_API TriangularSolveBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "TriangularSolveBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); A_.reset_data(); A_.reset_grad_function(); solution_.reset_data(); solution_.reset_grad_function(); } SavedVariable self_; SavedVariable A_; bool upper; bool transpose; bool unitriangular; SavedVariable solution_; }; struct TORCH_API TrilBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "TrilBackward"; } void release_variables() override { } int64_t diagonal = 0; }; struct TORCH_API TriuBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "TriuBackward"; } void release_variables() override { } int64_t diagonal = 0; }; struct TORCH_API TruncBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "TruncBackward"; } void release_variables() override { } }; struct TORCH_API ToDenseBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ToDenseBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; }; struct TORCH_API ToSparseBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ToSparseBackward"; } void release_variables() override { } }; struct TORCH_API ToMkldnnBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ToMkldnnBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; }; struct TORCH_API UnfoldBackward : public Node { using Node::Node; variable_list apply(variable_list&& grads) override; std::string name() const override { return "UnfoldBackward"; } void release_variables() override { } std::vector self_sizes; int64_t dimension = 0; int64_t size = 0; int64_t step = 0; }; struct TORCH_API UniformBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "UniformBackward"; } void release_variables() override { } }; struct TORCH_API UniqueBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "UniqueBackward"; } void release_variables() override { } }; struct TORCH_API UnsafeViewBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "UnsafeViewBackward"; } void release_variables() override { } std::vector self_sizes; }; struct TORCH_API UnsqueezeBackward0 : public Node { using Node::Node; variable_list apply(variable_list&& grads) override; std::string name() const override { return "UnsqueezeBackward0"; } void release_variables() override { } int64_t dim = 0; }; struct TORCH_API UnsqueezeBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "UnsqueezeBackward1"; } void release_variables() override { } int64_t dim = 0; }; struct TORCH_API VarBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "VarBackward0"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; bool unbiased; }; struct TORCH_API VarBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "VarBackward1"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; std::vector dim; bool unbiased; bool keepdim; }; struct TORCH_API ViewBackward : public Node { using Node::Node; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ViewBackward"; } void release_variables() override { } std::vector self_sizes; }; struct TORCH_API SWhereBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SWhereBackward"; } void release_variables() override { condition_.reset_data(); condition_.reset_grad_function(); } SavedVariable condition_; }; struct TORCH_API WeightNormCudaInterfaceBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "WeightNormCudaInterfaceBackward"; } void release_variables() override { v_.reset_data(); v_.reset_grad_function(); g_.reset_data(); g_.reset_grad_function(); result1_.reset_data(); result1_.reset_grad_function(); } SavedVariable v_; SavedVariable g_; int64_t dim = 0; SavedVariable result1_; }; struct TORCH_API ZeroBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ZeroBackward"; } void release_variables() override { } }; struct TORCH_API SparseMaskBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SparseMaskBackward"; } void release_variables() override { mask_.reset_data(); mask_.reset_grad_function(); } SavedVariable mask_; }; struct TORCH_API SparseCooTensorWithDimsAndTensorsBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SparseCooTensorWithDimsAndTensorsBackward"; } void release_variables() override { indices_.reset_data(); indices_.reset_grad_function(); } SavedVariable indices_; std::vector values_sizes; }; struct TORCH_API SparseSumBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SparseSumBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; std::vector dim; }; struct TORCH_API StandardGammaBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "StandardGammaBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result_.reset_data(); result_.reset_grad_function(); } SavedVariable self_; SavedVariable result_; }; struct TORCH_API StandardGammaGradBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "StandardGammaGradBackward"; } void release_variables() override { } }; struct TORCH_API ValuesBackward : public Node { using Node::Node; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ValuesBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } std::vector self_sizes; SavedVariable self_; }; struct TORCH_API TrilinearBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "TrilinearBackward"; } void release_variables() override { i1_.reset_data(); i1_.reset_grad_function(); i2_.reset_data(); i2_.reset_grad_function(); i3_.reset_data(); i3_.reset_grad_function(); } SavedVariable i1_; SavedVariable i2_; SavedVariable i3_; std::vector expand1; std::vector expand2; std::vector expand3; std::vector sumdim; int64_t unroll_dim = 0; }; struct TORCH_API ConstantPadNdBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ConstantPadNdBackward"; } void release_variables() override { } std::vector pad; }; struct TORCH_API BinaryCrossEntropyBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "BinaryCrossEntropyBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); target_.reset_data(); target_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable self_; SavedVariable target_; SavedVariable weight_; int64_t reduction = 0; }; struct TORCH_API BinaryCrossEntropyWithLogitsBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "BinaryCrossEntropyWithLogitsBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); target_.reset_data(); target_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); pos_weight_.reset_data(); pos_weight_.reset_grad_function(); } SavedVariable self_; SavedVariable target_; SavedVariable weight_; SavedVariable pos_weight_; int64_t reduction = 0; }; struct TORCH_API EmbeddingBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "EmbeddingBackward"; } void release_variables() override { indices_.reset_data(); indices_.reset_grad_function(); } int64_t weight_argsize_0 = 0; SavedVariable indices_; int64_t padding_idx = 0; bool scale_grad_by_freq; bool sparse; }; struct TORCH_API EmbeddingDenseBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "EmbeddingDenseBackwardBackward"; } void release_variables() override { indices_.reset_data(); indices_.reset_grad_function(); } SavedVariable indices_; }; struct TORCH_API EmbeddingBagBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "EmbeddingBagBackward"; } void release_variables() override { weight_.reset_data(); weight_.reset_grad_function(); indices_.reset_data(); indices_.reset_grad_function(); offsets_.reset_data(); offsets_.reset_grad_function(); per_sample_weights_.reset_data(); per_sample_weights_.reset_grad_function(); result1_.reset_data(); result1_.reset_grad_function(); result2_.reset_data(); result2_.reset_grad_function(); result3_.reset_data(); result3_.reset_grad_function(); } SavedVariable weight_; SavedVariable indices_; SavedVariable offsets_; int64_t mode = 0; int64_t weight_argsize_0 = 0; bool scale_grad_by_freq; bool sparse; SavedVariable per_sample_weights_; SavedVariable result1_; SavedVariable result2_; SavedVariable result3_; }; struct TORCH_API EmbeddingRenormBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "EmbeddingRenormBackward"; } void release_variables() override { } }; struct TORCH_API KlDivBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "KlDivBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); target_.reset_data(); target_.reset_grad_function(); } SavedVariable self_; SavedVariable target_; int64_t reduction = 0; }; struct TORCH_API L1LossBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "L1LossBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); target_.reset_data(); target_.reset_grad_function(); } SavedVariable self_; SavedVariable target_; int64_t reduction = 0; }; struct TORCH_API MseLossBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MseLossBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); target_.reset_data(); target_.reset_grad_function(); } SavedVariable self_; SavedVariable target_; int64_t reduction = 0; }; struct TORCH_API MultiMarginLossBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MultiMarginLossBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); target_.reset_data(); target_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable self_; SavedVariable target_; Scalar p; Scalar margin; SavedVariable weight_; int64_t reduction = 0; }; struct TORCH_API MultilabelMarginLossBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MultilabelMarginLossBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); target_.reset_data(); target_.reset_grad_function(); is_target_.reset_data(); is_target_.reset_grad_function(); } SavedVariable self_; SavedVariable target_; int64_t reduction = 0; SavedVariable is_target_; }; struct TORCH_API NllLossBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "NllLossBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); target_.reset_data(); target_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); total_weight_.reset_data(); total_weight_.reset_grad_function(); } SavedVariable self_; SavedVariable target_; SavedVariable weight_; int64_t reduction = 0; int64_t ignore_index = 0; SavedVariable total_weight_; }; struct TORCH_API NllLoss2DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "NllLoss2DBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); target_.reset_data(); target_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); total_weight_.reset_data(); total_weight_.reset_grad_function(); } SavedVariable self_; SavedVariable target_; SavedVariable weight_; int64_t reduction = 0; int64_t ignore_index = 0; SavedVariable total_weight_; }; struct TORCH_API SmoothL1LossBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SmoothL1LossBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); target_.reset_data(); target_.reset_grad_function(); } SavedVariable self_; SavedVariable target_; int64_t reduction = 0; }; struct TORCH_API SoftMarginLossBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SoftMarginLossBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); target_.reset_data(); target_.reset_grad_function(); } SavedVariable self_; SavedVariable target_; int64_t reduction = 0; }; struct TORCH_API ReluBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ReluBackward0"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; }; struct TORCH_API ReluBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ReluBackward1"; } void release_variables() override { result_.reset_data(); result_.reset_grad_function(); } SavedVariable result_; }; struct TORCH_API EluBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "EluBackward"; } void release_variables() override { result_.reset_data(); result_.reset_grad_function(); } Scalar alpha; Scalar scale; Scalar input_scale; SavedVariable result_; }; struct TORCH_API GeluBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "GeluBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; }; struct TORCH_API GluBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "GluBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; int64_t dim = 0; }; struct TORCH_API HardshrinkBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "HardshrinkBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; Scalar lambd; }; struct TORCH_API HardshrinkBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "HardshrinkBackwardBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; Scalar lambd; }; struct TORCH_API HardtanhBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "HardtanhBackward0"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; Scalar min_val; Scalar max_val; }; struct TORCH_API HardtanhBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "HardtanhBackward1"; } void release_variables() override { result_.reset_data(); result_.reset_grad_function(); } Scalar min_val; Scalar max_val; SavedVariable result_; }; struct TORCH_API LeakyReluBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "LeakyReluBackward0"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; Scalar negative_slope; }; struct TORCH_API LeakyReluBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "LeakyReluBackward1"; } void release_variables() override { result_.reset_data(); result_.reset_grad_function(); } Scalar negative_slope; SavedVariable result_; }; struct TORCH_API LogSigmoidBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "LogSigmoidBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); buffer_.reset_data(); buffer_.reset_grad_function(); } SavedVariable self_; SavedVariable buffer_; }; struct TORCH_API LogSoftmaxBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "LogSoftmaxBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result_.reset_data(); result_.reset_grad_function(); } SavedVariable self_; int64_t dim = 0; SavedVariable result_; }; struct TORCH_API PreluBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "PreluBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable self_; SavedVariable weight_; }; struct TORCH_API PreluBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "PreluBackwardBackward"; } void release_variables() override { grad_output_.reset_data(); grad_output_.reset_grad_function(); self_.reset_data(); self_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable grad_output_; SavedVariable self_; SavedVariable weight_; }; struct TORCH_API RreluWithNoiseBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "RreluWithNoiseBackward0"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); noise_.reset_data(); noise_.reset_grad_function(); } SavedVariable self_; SavedVariable noise_; Scalar lower; Scalar upper; bool training; }; struct TORCH_API RreluWithNoiseBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "RreluWithNoiseBackward1"; } void release_variables() override { noise_.reset_data(); noise_.reset_grad_function(); result_.reset_data(); result_.reset_grad_function(); } SavedVariable noise_; Scalar lower; Scalar upper; bool training; SavedVariable result_; }; struct TORCH_API SoftmaxBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SoftmaxBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result_.reset_data(); result_.reset_grad_function(); } SavedVariable self_; int64_t dim = 0; SavedVariable result_; }; struct TORCH_API SoftplusBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SoftplusBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result_.reset_data(); result_.reset_grad_function(); } SavedVariable self_; Scalar beta; Scalar threshold; SavedVariable result_; }; struct TORCH_API SoftshrinkBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SoftshrinkBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; Scalar lambd; }; struct TORCH_API ThresholdBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ThresholdBackward0"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; Scalar threshold; }; struct TORCH_API ThresholdBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ThresholdBackward1"; } void release_variables() override { result_.reset_data(); result_.reset_grad_function(); } Scalar threshold; SavedVariable result_; }; struct TORCH_API ReflectionPad1DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ReflectionPad1DBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; std::vector padding; }; struct TORCH_API ReflectionPad2DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ReflectionPad2DBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; std::vector padding; }; struct TORCH_API ReplicationPad1DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ReplicationPad1DBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; std::vector padding; }; struct TORCH_API ReplicationPad2DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ReplicationPad2DBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; std::vector padding; }; struct TORCH_API ReplicationPad3DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ReplicationPad3DBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; std::vector padding; }; struct TORCH_API UpsampleLinear1DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "UpsampleLinear1DBackward"; } void release_variables() override { } std::vector self_sizes; std::vector output_size; bool align_corners; }; struct TORCH_API UpsampleBilinear2DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "UpsampleBilinear2DBackward"; } void release_variables() override { } std::vector self_sizes; std::vector output_size; bool align_corners; }; struct TORCH_API UpsampleBicubic2DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "UpsampleBicubic2DBackward"; } void release_variables() override { } std::vector self_sizes; std::vector output_size; bool align_corners; }; struct TORCH_API UpsampleTrilinear3DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "UpsampleTrilinear3DBackward"; } void release_variables() override { } std::vector self_sizes; std::vector output_size; bool align_corners; }; struct TORCH_API UpsampleNearest1DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "UpsampleNearest1DBackward"; } void release_variables() override { } std::vector self_sizes; std::vector output_size; }; struct TORCH_API UpsampleNearest2DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "UpsampleNearest2DBackward"; } void release_variables() override { } std::vector self_sizes; std::vector output_size; }; struct TORCH_API UpsampleNearest3DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "UpsampleNearest3DBackward"; } void release_variables() override { } std::vector self_sizes; std::vector output_size; }; struct TORCH_API AdaptiveAvgPool2DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AdaptiveAvgPool2DBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; }; struct TORCH_API AdaptiveAvgPool3DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AdaptiveAvgPool3DBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; }; struct TORCH_API AdaptiveMaxPool2DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AdaptiveMaxPool2DBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result1_.reset_data(); result1_.reset_grad_function(); } SavedVariable self_; SavedVariable result1_; }; struct TORCH_API AdaptiveMaxPool3DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AdaptiveMaxPool3DBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result1_.reset_data(); result1_.reset_grad_function(); } SavedVariable self_; SavedVariable result1_; }; struct TORCH_API AvgPool2DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AvgPool2DBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; std::vector kernel_size; std::vector stride; std::vector padding; bool ceil_mode; bool count_include_pad; c10::optional divisor_override; }; struct TORCH_API AvgPool3DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AvgPool3DBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; std::vector kernel_size; std::vector stride; std::vector padding; bool ceil_mode; bool count_include_pad; c10::optional divisor_override; }; struct TORCH_API FractionalMaxPool2DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "FractionalMaxPool2DBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result1_.reset_data(); result1_.reset_grad_function(); } SavedVariable self_; std::vector kernel_size; std::vector output_size; SavedVariable result1_; }; struct TORCH_API FractionalMaxPool3DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "FractionalMaxPool3DBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result1_.reset_data(); result1_.reset_grad_function(); } SavedVariable self_; std::vector kernel_size; std::vector output_size; SavedVariable result1_; }; struct TORCH_API MaxPool2DWithIndicesBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MaxPool2DWithIndicesBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result1_.reset_data(); result1_.reset_grad_function(); } SavedVariable self_; std::vector kernel_size; std::vector stride; std::vector padding; std::vector dilation; bool ceil_mode; SavedVariable result1_; }; struct TORCH_API MaxPool3DWithIndicesBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MaxPool3DWithIndicesBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result1_.reset_data(); result1_.reset_grad_function(); } SavedVariable self_; std::vector kernel_size; std::vector stride; std::vector padding; std::vector dilation; bool ceil_mode; SavedVariable result1_; }; struct TORCH_API MaxUnpool2DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MaxUnpool2DBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); indices_.reset_data(); indices_.reset_grad_function(); } SavedVariable self_; SavedVariable indices_; std::vector output_size; }; struct TORCH_API MaxUnpool3DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MaxUnpool3DBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); indices_.reset_data(); indices_.reset_grad_function(); } SavedVariable self_; SavedVariable indices_; std::vector output_size; std::vector stride; std::vector padding; }; struct TORCH_API ConvolutionOverrideableBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ConvolutionOverrideableBackward"; } void release_variables() override { input_.reset_data(); input_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable input_; SavedVariable weight_; std::vector stride; std::vector padding; std::vector dilation; bool transposed; std::vector output_padding; int64_t groups = 0; }; struct TORCH_API ConvolutionBackwardOverrideableBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ConvolutionBackwardOverrideableBackward"; } void release_variables() override { grad_output_.reset_data(); grad_output_.reset_grad_function(); input_.reset_data(); input_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable grad_output_; SavedVariable input_; SavedVariable weight_; std::vector stride; std::vector padding; std::vector dilation; std::vector output_padding; int64_t groups = 0; }; struct TORCH_API SlowConvTranspose2DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SlowConvTranspose2DBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable self_; SavedVariable weight_; std::vector kernel_size; std::vector stride; std::vector padding; std::vector output_padding; std::vector dilation; }; struct TORCH_API SlowConvTranspose2DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SlowConvTranspose2DBackwardBackward"; } void release_variables() override { grad_output_.reset_data(); grad_output_.reset_grad_function(); self_.reset_data(); self_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable grad_output_; SavedVariable self_; SavedVariable weight_; std::vector stride; std::vector padding; std::vector output_padding; std::vector dilation; }; struct TORCH_API SlowConvTranspose3DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SlowConvTranspose3DBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable self_; SavedVariable weight_; std::vector kernel_size; std::vector stride; std::vector padding; std::vector output_padding; std::vector dilation; }; struct TORCH_API SlowConvTranspose3DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SlowConvTranspose3DBackwardBackward"; } void release_variables() override { grad_output_.reset_data(); grad_output_.reset_grad_function(); self_.reset_data(); self_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable grad_output_; SavedVariable self_; SavedVariable weight_; std::vector stride; std::vector padding; std::vector output_padding; std::vector dilation; }; struct TORCH_API ThnnConv2DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ThnnConv2DBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); finput_.reset_data(); finput_.reset_grad_function(); fgrad_input_.reset_data(); fgrad_input_.reset_grad_function(); } SavedVariable self_; SavedVariable weight_; std::vector kernel_size; std::vector stride; std::vector padding; SavedVariable finput_; SavedVariable fgrad_input_; }; struct TORCH_API ThnnConv2DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ThnnConv2DBackwardBackward"; } void release_variables() override { grad_output_.reset_data(); grad_output_.reset_grad_function(); self_.reset_data(); self_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable grad_output_; SavedVariable self_; SavedVariable weight_; std::vector stride; std::vector padding; }; struct TORCH_API ThnnConvDepthwise2DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ThnnConvDepthwise2DBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable self_; SavedVariable weight_; std::vector kernel_size; std::vector stride; std::vector padding; std::vector dilation; }; struct TORCH_API ThnnConvDepthwise2DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ThnnConvDepthwise2DBackwardBackward"; } void release_variables() override { grad_output_.reset_data(); grad_output_.reset_grad_function(); self_.reset_data(); self_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable grad_output_; int64_t self_argsize_1 = 0; SavedVariable self_; SavedVariable weight_; std::vector stride; std::vector padding; std::vector dilation; }; struct TORCH_API ThnnConv3DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ThnnConv3DBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); finput_.reset_data(); finput_.reset_grad_function(); fgrad_input_.reset_data(); fgrad_input_.reset_grad_function(); } SavedVariable self_; SavedVariable weight_; std::vector kernel_size; std::vector stride; std::vector padding; SavedVariable finput_; SavedVariable fgrad_input_; }; struct TORCH_API ThnnConv3DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ThnnConv3DBackwardBackward"; } void release_variables() override { grad_output_.reset_data(); grad_output_.reset_grad_function(); self_.reset_data(); self_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable grad_output_; SavedVariable self_; SavedVariable weight_; std::vector stride; std::vector padding; }; struct TORCH_API SlowConvDilated2DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SlowConvDilated2DBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable self_; SavedVariable weight_; std::vector kernel_size; std::vector stride; std::vector padding; std::vector dilation; }; struct TORCH_API SlowConvDilated2DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SlowConvDilated2DBackwardBackward"; } void release_variables() override { grad_output_.reset_data(); grad_output_.reset_grad_function(); self_.reset_data(); self_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable grad_output_; SavedVariable self_; SavedVariable weight_; std::vector stride; std::vector padding; std::vector dilation; }; struct TORCH_API SlowConvDilated3DBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SlowConvDilated3DBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable self_; SavedVariable weight_; std::vector kernel_size; std::vector stride; std::vector padding; std::vector dilation; }; struct TORCH_API SlowConvDilated3DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SlowConvDilated3DBackwardBackward"; } void release_variables() override { grad_output_.reset_data(); grad_output_.reset_grad_function(); self_.reset_data(); self_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable grad_output_; SavedVariable self_; SavedVariable weight_; std::vector stride; std::vector padding; std::vector dilation; }; struct TORCH_API Col2ImBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "Col2ImBackward"; } void release_variables() override { } std::vector kernel_size; std::vector dilation; std::vector padding; std::vector stride; }; struct TORCH_API Im2ColBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "Im2ColBackward"; } void release_variables() override { } int64_t self_argsize_2 = 0; int64_t self_argsize_3 = 0; std::vector kernel_size; std::vector dilation; std::vector padding; std::vector stride; }; struct TORCH_API AdaptiveAvgPool2DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AdaptiveAvgPool2DBackwardBackward"; } void release_variables() override { grad_output_.reset_data(); grad_output_.reset_grad_function(); } SavedVariable grad_output_; TypeAndSize self_info; }; struct TORCH_API AdaptiveAvgPool3DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AdaptiveAvgPool3DBackwardBackward"; } void release_variables() override { grad_output_.reset_data(); grad_output_.reset_grad_function(); } SavedVariable grad_output_; TypeAndSize self_info; }; struct TORCH_API AdaptiveMaxPool2DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AdaptiveMaxPool2DBackwardBackward"; } void release_variables() override { indices_.reset_data(); indices_.reset_grad_function(); } SavedVariable indices_; TypeAndSize self_info; }; struct TORCH_API AdaptiveMaxPool3DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AdaptiveMaxPool3DBackwardBackward"; } void release_variables() override { indices_.reset_data(); indices_.reset_grad_function(); } SavedVariable indices_; TypeAndSize self_info; }; struct TORCH_API AvgPool2DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AvgPool2DBackwardBackward"; } void release_variables() override { } std::vector kernel_size; std::vector stride; std::vector padding; bool ceil_mode; bool count_include_pad; c10::optional divisor_override; TypeAndSize self_info; }; struct TORCH_API AvgPool3DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "AvgPool3DBackwardBackward"; } void release_variables() override { } std::vector kernel_size; std::vector stride; std::vector padding; bool ceil_mode; bool count_include_pad; c10::optional divisor_override; TypeAndSize self_info; }; struct TORCH_API EluBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "EluBackwardBackward"; } void release_variables() override { output_.reset_data(); output_.reset_grad_function(); grad_output_.reset_data(); grad_output_.reset_grad_function(); } Scalar alpha; Scalar scale; Scalar input_scale; SavedVariable output_; SavedVariable grad_output_; }; struct TORCH_API FractionalMaxPool2DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "FractionalMaxPool2DBackwardBackward"; } void release_variables() override { indices_.reset_data(); indices_.reset_grad_function(); } SavedVariable indices_; TypeAndSize self_info; }; struct TORCH_API FractionalMaxPool3DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "FractionalMaxPool3DBackwardBackward"; } void release_variables() override { indices_.reset_data(); indices_.reset_grad_function(); } SavedVariable indices_; TypeAndSize self_info; }; struct TORCH_API GluBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "GluBackwardBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); grad_output_.reset_data(); grad_output_.reset_grad_function(); } SavedVariable self_; int64_t dim = 0; SavedVariable grad_output_; }; struct TORCH_API HardtanhBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "HardtanhBackwardBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; Scalar min_val; Scalar max_val; }; struct TORCH_API KlDivBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "KlDivBackwardBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); target_.reset_data(); target_.reset_grad_function(); } SavedVariable self_; SavedVariable target_; int64_t reduction = 0; }; struct TORCH_API L1LossBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "L1LossBackwardBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); target_.reset_data(); target_.reset_grad_function(); } SavedVariable self_; SavedVariable target_; int64_t reduction = 0; }; struct TORCH_API LogSigmoidBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "LogSigmoidBackwardBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); buffer_.reset_data(); buffer_.reset_grad_function(); grad_output_.reset_data(); grad_output_.reset_grad_function(); } SavedVariable self_; SavedVariable buffer_; SavedVariable grad_output_; }; struct TORCH_API LogSoftmaxBackwardDataBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "LogSoftmaxBackwardDataBackward"; } void release_variables() override { output_.reset_data(); output_.reset_grad_function(); grad_output_.reset_data(); grad_output_.reset_grad_function(); self_.reset_data(); self_.reset_grad_function(); } SavedVariable output_; int64_t dim = 0; SavedVariable grad_output_; SavedVariable self_; }; struct TORCH_API LeakyReluBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "LeakyReluBackwardBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; Scalar negative_slope; }; struct TORCH_API MaxPool2DWithIndicesBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MaxPool2DWithIndicesBackwardBackward"; } void release_variables() override { indices_.reset_data(); indices_.reset_grad_function(); } SavedVariable indices_; TypeAndSize self_info; }; struct TORCH_API MaxPool3DWithIndicesBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MaxPool3DWithIndicesBackwardBackward"; } void release_variables() override { indices_.reset_data(); indices_.reset_grad_function(); } SavedVariable indices_; TypeAndSize self_info; }; struct TORCH_API MaxUnpool2DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MaxUnpool2DBackwardBackward"; } void release_variables() override { indices_.reset_data(); indices_.reset_grad_function(); } SavedVariable indices_; std::vector output_size; TypeAndSize self_info; }; struct TORCH_API MseLossBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MseLossBackwardBackward"; } void release_variables() override { grad_output_.reset_data(); grad_output_.reset_grad_function(); self_.reset_data(); self_.reset_grad_function(); target_.reset_data(); target_.reset_grad_function(); } SavedVariable grad_output_; SavedVariable self_; SavedVariable target_; int64_t reduction = 0; }; struct TORCH_API NllLossBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "NllLossBackwardBackward"; } void release_variables() override { target_.reset_data(); target_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable target_; SavedVariable weight_; int64_t reduction = 0; int64_t ignore_index = 0; }; struct TORCH_API NllLoss2DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "NllLoss2DBackwardBackward"; } void release_variables() override { target_.reset_data(); target_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable target_; SavedVariable weight_; int64_t reduction = 0; int64_t ignore_index = 0; }; struct TORCH_API RreluWithNoiseBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "RreluWithNoiseBackwardBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); noise_.reset_data(); noise_.reset_grad_function(); } SavedVariable self_; SavedVariable noise_; Scalar lower; Scalar upper; bool training; }; struct TORCH_API ReflectionPad1DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ReflectionPad1DBackwardBackward"; } void release_variables() override { } std::vector padding; TypeAndSize self_info; }; struct TORCH_API ReflectionPad2DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ReflectionPad2DBackwardBackward"; } void release_variables() override { } std::vector padding; TypeAndSize self_info; }; struct TORCH_API ReplicationPad1DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ReplicationPad1DBackwardBackward"; } void release_variables() override { } std::vector padding; TypeAndSize self_info; }; struct TORCH_API ReplicationPad2DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ReplicationPad2DBackwardBackward"; } void release_variables() override { } std::vector padding; TypeAndSize self_info; }; struct TORCH_API ReplicationPad3DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ReplicationPad3DBackwardBackward"; } void release_variables() override { } std::vector padding; TypeAndSize self_info; }; struct TORCH_API SmoothL1LossBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SmoothL1LossBackwardBackward"; } void release_variables() override { grad_output_.reset_data(); grad_output_.reset_grad_function(); self_.reset_data(); self_.reset_grad_function(); target_.reset_data(); target_.reset_grad_function(); } SavedVariable grad_output_; SavedVariable self_; SavedVariable target_; int64_t reduction = 0; }; struct TORCH_API SoftplusBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SoftplusBackwardBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); output_.reset_data(); output_.reset_grad_function(); grad_output_.reset_data(); grad_output_.reset_grad_function(); } SavedVariable self_; Scalar beta; Scalar threshold; SavedVariable output_; SavedVariable grad_output_; }; struct TORCH_API SoftmaxBackwardDataBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SoftmaxBackwardDataBackward"; } void release_variables() override { output_.reset_data(); output_.reset_grad_function(); self_.reset_data(); self_.reset_grad_function(); grad_output_.reset_data(); grad_output_.reset_grad_function(); } SavedVariable output_; int64_t dim = 0; SavedVariable self_; SavedVariable grad_output_; }; struct TORCH_API SoftMarginLossBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SoftMarginLossBackwardBackward"; } void release_variables() override { grad_output_.reset_data(); grad_output_.reset_grad_function(); self_.reset_data(); self_.reset_grad_function(); target_.reset_data(); target_.reset_grad_function(); } SavedVariable grad_output_; SavedVariable self_; SavedVariable target_; int64_t reduction = 0; }; struct TORCH_API SoftshrinkBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SoftshrinkBackwardBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; Scalar lambd; }; struct TORCH_API ThresholdBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ThresholdBackwardBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; Scalar threshold; }; struct TORCH_API UpsampleLinear1DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "UpsampleLinear1DBackwardBackward"; } void release_variables() override { } std::vector output_size; bool align_corners; }; struct TORCH_API UpsampleBilinear2DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "UpsampleBilinear2DBackwardBackward"; } void release_variables() override { } std::vector output_size; bool align_corners; }; struct TORCH_API UpsampleBicubic2DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "UpsampleBicubic2DBackwardBackward"; } void release_variables() override { } std::vector output_size; bool align_corners; }; struct TORCH_API UpsampleTrilinear3DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "UpsampleTrilinear3DBackwardBackward"; } void release_variables() override { } std::vector output_size; bool align_corners; }; struct TORCH_API UpsampleNearest1DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "UpsampleNearest1DBackwardBackward"; } void release_variables() override { } std::vector output_size; }; struct TORCH_API UpsampleNearest2DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "UpsampleNearest2DBackwardBackward"; } void release_variables() override { } std::vector output_size; }; struct TORCH_API UpsampleNearest3DBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "UpsampleNearest3DBackwardBackward"; } void release_variables() override { } std::vector output_size; }; struct TORCH_API SigmoidBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "SigmoidBackwardBackward"; } void release_variables() override { output_.reset_data(); output_.reset_grad_function(); grad_output_.reset_data(); grad_output_.reset_grad_function(); } SavedVariable output_; SavedVariable grad_output_; }; struct TORCH_API TanhBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "TanhBackwardBackward"; } void release_variables() override { output_.reset_data(); output_.reset_grad_function(); grad_output_.reset_data(); grad_output_.reset_grad_function(); } SavedVariable output_; SavedVariable grad_output_; }; struct TORCH_API CudnnCtcLossBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CudnnCtcLossBackward"; } void release_variables() override { result0_.reset_data(); result0_.reset_grad_function(); result1_.reset_data(); result1_.reset_grad_function(); } bool zero_infinity; SavedVariable result0_; TypeAndSize result1_info; SavedVariable result1_; }; struct TORCH_API CudnnConvolutionTransposeBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CudnnConvolutionTransposeBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable self_; SavedVariable weight_; std::vector padding; std::vector output_padding; std::vector stride; std::vector dilation; int64_t groups = 0; bool benchmark; bool deterministic; }; struct TORCH_API CudnnConvolutionTransposeBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CudnnConvolutionTransposeBackwardBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); grad_output_.reset_data(); grad_output_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable self_; SavedVariable grad_output_; SavedVariable weight_; std::vector padding; std::vector output_padding; std::vector stride; std::vector dilation; int64_t groups = 0; bool benchmark; bool deterministic; }; struct TORCH_API CudnnConvolutionBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CudnnConvolutionBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable self_; SavedVariable weight_; std::vector padding; std::vector stride; std::vector dilation; int64_t groups = 0; bool benchmark; bool deterministic; }; struct TORCH_API CudnnConvolutionBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CudnnConvolutionBackwardBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); grad_output_.reset_data(); grad_output_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable self_; SavedVariable grad_output_; SavedVariable weight_; std::vector padding; std::vector stride; std::vector dilation; int64_t groups = 0; bool benchmark; bool deterministic; }; struct TORCH_API CudnnGridSamplerBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CudnnGridSamplerBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); grid_.reset_data(); grid_.reset_grad_function(); } SavedVariable self_; SavedVariable grid_; }; struct TORCH_API CudnnAffineGridGeneratorBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CudnnAffineGridGeneratorBackward"; } void release_variables() override { } int64_t N = 0; int64_t C = 0; int64_t H = 0; int64_t W = 0; }; struct TORCH_API CudnnBatchNormBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CudnnBatchNormBackward"; } void release_variables() override { input_.reset_data(); input_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); running_mean_.reset_data(); running_mean_.reset_grad_function(); running_var_.reset_data(); running_var_.reset_grad_function(); result1_.reset_data(); result1_.reset_grad_function(); result2_.reset_data(); result2_.reset_grad_function(); } SavedVariable input_; SavedVariable weight_; SavedVariable running_mean_; SavedVariable running_var_; bool training; double epsilon; SavedVariable result1_; SavedVariable result2_; }; struct TORCH_API CudnnBatchNormBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CudnnBatchNormBackwardBackward"; } void release_variables() override { input_.reset_data(); input_.reset_grad_function(); grad_output_.reset_data(); grad_output_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); running_mean_.reset_data(); running_mean_.reset_grad_function(); running_var_.reset_data(); running_var_.reset_grad_function(); save_mean_.reset_data(); save_mean_.reset_grad_function(); save_var_.reset_data(); save_var_.reset_grad_function(); } SavedVariable input_; SavedVariable grad_output_; SavedVariable weight_; SavedVariable running_mean_; SavedVariable running_var_; SavedVariable save_mean_; SavedVariable save_var_; double epsilon; }; struct TORCH_API NnpackSpatialConvolutionBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "NnpackSpatialConvolutionBackward"; } void release_variables() override { input_.reset_data(); input_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable input_; SavedVariable weight_; std::vector padding; std::vector weight_sizes; }; struct TORCH_API CudnnRnnBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "CudnnRnnBackward"; } void release_variables() override { input_.reset_data(); input_.reset_grad_function(); weight_.clear(); weight_released_ = true; hx_.reset_data(); hx_.reset_grad_function(); cx_.reset_data(); cx_.reset_grad_function(); dropout_state_.reset_data(); dropout_state_.reset_grad_function(); result0_.reset_data(); result0_.reset_grad_function(); result3_.reset_data(); result3_.reset_grad_function(); result4_.reset_data(); result4_.reset_grad_function(); } bool retain_variables = true; void will_release_variables() override { retain_variables = false; } SavedVariable input_; std::vector weight_; bool weight_released_ = false; int64_t weight_stride0 = 0; SavedVariable hx_; SavedVariable cx_; int64_t mode = 0; int64_t hidden_size = 0; int64_t num_layers = 0; bool batch_first; double dropout; bool train; bool bidirectional; std::vector batch_sizes; SavedVariable dropout_state_; SavedVariable result0_; SavedVariable result3_; SavedVariable result4_; size_t weight_size_; }; struct TORCH_API MiopenConvolutionTransposeBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MiopenConvolutionTransposeBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable self_; SavedVariable weight_; std::vector padding; std::vector output_padding; std::vector stride; std::vector dilation; int64_t groups = 0; bool benchmark; bool deterministic; }; struct TORCH_API MiopenConvolutionTransposeBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MiopenConvolutionTransposeBackwardBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); grad_output_.reset_data(); grad_output_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable self_; SavedVariable grad_output_; SavedVariable weight_; std::vector padding; std::vector output_padding; std::vector stride; std::vector dilation; int64_t groups = 0; bool benchmark; bool deterministic; }; struct TORCH_API MiopenConvolutionBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MiopenConvolutionBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable self_; SavedVariable weight_; std::vector padding; std::vector stride; std::vector dilation; int64_t groups = 0; bool benchmark; bool deterministic; }; struct TORCH_API MiopenConvolutionBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MiopenConvolutionBackwardBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); grad_output_.reset_data(); grad_output_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable self_; SavedVariable grad_output_; SavedVariable weight_; std::vector padding; std::vector stride; std::vector dilation; int64_t groups = 0; bool benchmark; bool deterministic; }; struct TORCH_API MiopenDepthwiseConvolutionBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MiopenDepthwiseConvolutionBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable self_; SavedVariable weight_; std::vector padding; std::vector stride; std::vector dilation; int64_t groups = 0; bool benchmark; bool deterministic; }; struct TORCH_API MiopenDepthwiseConvolutionBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MiopenDepthwiseConvolutionBackwardBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); grad_output_.reset_data(); grad_output_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable self_; SavedVariable grad_output_; SavedVariable weight_; std::vector padding; std::vector stride; std::vector dilation; int64_t groups = 0; bool benchmark; bool deterministic; }; struct TORCH_API MiopenBatchNormBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MiopenBatchNormBackward"; } void release_variables() override { input_.reset_data(); input_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); running_mean_.reset_data(); running_mean_.reset_grad_function(); running_var_.reset_data(); running_var_.reset_grad_function(); result1_.reset_data(); result1_.reset_grad_function(); result2_.reset_data(); result2_.reset_grad_function(); } SavedVariable input_; SavedVariable weight_; SavedVariable running_mean_; SavedVariable running_var_; bool training; double epsilon; SavedVariable result1_; SavedVariable result2_; }; struct TORCH_API MiopenBatchNormBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MiopenBatchNormBackwardBackward"; } void release_variables() override { input_.reset_data(); input_.reset_grad_function(); grad_output_.reset_data(); grad_output_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); running_mean_.reset_data(); running_mean_.reset_grad_function(); running_var_.reset_data(); running_var_.reset_grad_function(); save_mean_.reset_data(); save_mean_.reset_grad_function(); save_var_.reset_data(); save_var_.reset_grad_function(); } SavedVariable input_; SavedVariable grad_output_; SavedVariable weight_; SavedVariable running_mean_; SavedVariable running_var_; SavedVariable save_mean_; SavedVariable save_var_; double epsilon; }; struct TORCH_API MiopenRnnBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MiopenRnnBackward"; } void release_variables() override { input_.reset_data(); input_.reset_grad_function(); weight_.clear(); weight_released_ = true; hx_.reset_data(); hx_.reset_grad_function(); cx_.reset_data(); cx_.reset_grad_function(); dropout_state_.reset_data(); dropout_state_.reset_grad_function(); result0_.reset_data(); result0_.reset_grad_function(); result3_.reset_data(); result3_.reset_grad_function(); result4_.reset_data(); result4_.reset_grad_function(); } bool retain_variables = true; void will_release_variables() override { retain_variables = false; } SavedVariable input_; std::vector weight_; bool weight_released_ = false; int64_t weight_stride0 = 0; SavedVariable hx_; SavedVariable cx_; int64_t mode = 0; int64_t hidden_size = 0; int64_t num_layers = 0; bool batch_first; double dropout; bool train; bool bidirectional; std::vector batch_sizes; SavedVariable dropout_state_; SavedVariable result0_; SavedVariable result3_; SavedVariable result4_; size_t weight_size_; }; struct TORCH_API MkldnnConvolutionBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MkldnnConvolutionBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable self_; SavedVariable weight_; std::vector padding; std::vector stride; std::vector dilation; int64_t groups = 0; }; struct TORCH_API MkldnnConvolutionBackwardBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "MkldnnConvolutionBackwardBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); grad_output_.reset_data(); grad_output_.reset_grad_function(); weight_.reset_data(); weight_.reset_grad_function(); } SavedVariable self_; SavedVariable grad_output_; SavedVariable weight_; std::vector padding; std::vector stride; std::vector dilation; int64_t groups = 0; }; struct TORCH_API FftWithSizeBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "FftWithSizeBackward"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); } SavedVariable self_; int64_t signal_ndim = 0; bool complex_input; bool complex_output; bool inverse; std::vector checked_signal_sizes; bool normalized; bool onesided; std::vector output_sizes; }; struct TORCH_API UnbindBackward : public Node { using Node::Node; variable_list apply(variable_list&& grads) override; std::string name() const override { return "UnbindBackward"; } void release_variables() override { } int64_t dim = 0; }; struct TORCH_API StackBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "StackBackward"; } void release_variables() override { } int64_t dim = 0; size_t tensors_size_; }; struct TORCH_API ThnnFusedLstmCellBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ThnnFusedLstmCellBackward"; } void release_variables() override { input_gates_.reset_data(); input_gates_.reset_grad_function(); hidden_gates_.reset_data(); hidden_gates_.reset_grad_function(); cx_.reset_data(); cx_.reset_grad_function(); input_bias_.reset_data(); input_bias_.reset_grad_function(); hidden_bias_.reset_data(); hidden_bias_.reset_grad_function(); result1_.reset_data(); result1_.reset_grad_function(); result2_.reset_data(); result2_.reset_grad_function(); } SavedVariable input_gates_; SavedVariable hidden_gates_; SavedVariable cx_; SavedVariable input_bias_; SavedVariable hidden_bias_; SavedVariable result1_; SavedVariable result2_; }; struct TORCH_API ThnnFusedGruCellBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "ThnnFusedGruCellBackward"; } void release_variables() override { input_gates_.reset_data(); input_gates_.reset_grad_function(); hidden_gates_.reset_data(); hidden_gates_.reset_grad_function(); hx_.reset_data(); hx_.reset_grad_function(); input_bias_.reset_data(); input_bias_.reset_grad_function(); hidden_bias_.reset_data(); hidden_bias_.reset_grad_function(); result1_.reset_data(); result1_.reset_grad_function(); } SavedVariable input_gates_; SavedVariable hidden_gates_; SavedVariable hx_; SavedVariable input_bias_; SavedVariable hidden_bias_; SavedVariable result1_; }; struct TORCH_API PackPaddedSequenceBackward : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "PackPaddedSequenceBackward"; } void release_variables() override { result1_.reset_data(); result1_.reset_grad_function(); } std::vector input_sizes; bool batch_first; SavedVariable result1_; }; struct TORCH_API StdMeanBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "StdMeanBackward0"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result0_.reset_data(); result0_.reset_grad_function(); result1_.reset_data(); result1_.reset_grad_function(); } SavedVariable self_; std::vector dim; bool unbiased; bool keepdim; SavedVariable result0_; SavedVariable result1_; }; struct TORCH_API VarMeanBackward0 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "VarMeanBackward0"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result0_.reset_data(); result0_.reset_grad_function(); result1_.reset_data(); result1_.reset_grad_function(); } SavedVariable self_; std::vector dim; bool unbiased; bool keepdim; SavedVariable result0_; SavedVariable result1_; }; struct TORCH_API StdMeanBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "StdMeanBackward1"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result0_.reset_data(); result0_.reset_grad_function(); result1_.reset_data(); result1_.reset_grad_function(); } SavedVariable self_; bool unbiased; SavedVariable result0_; SavedVariable result1_; }; struct TORCH_API VarMeanBackward1 : public TraceableFunction { using TraceableFunction::TraceableFunction; variable_list apply(variable_list&& grads) override; std::string name() const override { return "VarMeanBackward1"; } void release_variables() override { self_.reset_data(); self_.reset_grad_function(); result0_.reset_data(); result0_.reset_grad_function(); result1_.reset_data(); result1_.reset_grad_function(); } SavedVariable self_; bool unbiased; SavedVariable result0_; SavedVariable result1_; }; }}} // namespace torch::autograd::generated