未验证 提交 cc52501e 编写于 作者: A Aurelius84 提交者: GitHub

[Eager]Add sort-simple-yaml for automatically sort api|backward.yaml (#41038)

* [Eager]Add sort-simple-yaml for automatically sort api|backward.yaml

* remove it test=document_fix

* refine

* add more yaml

* remove optional

* fix infRT CI
上级 23c3d967
...@@ -10,7 +10,7 @@ repos: ...@@ -10,7 +10,7 @@ repos:
- id: yapf - id: yapf
files: (.*\.(py|bzl)|BUILD|.*\.BUILD|WORKSPACE)$ files: (.*\.(py|bzl)|BUILD|.*\.BUILD|WORKSPACE)$
- repo: https://github.com/pre-commit/pre-commit-hooks - repo: https://github.com/pre-commit/pre-commit-hooks
sha: 5bf6c09bfa1297d3692cadd621ef95f1284e33c0 rev: v4.1.0
hooks: hooks:
- id: check-added-large-files - id: check-added-large-files
- id: check-merge-conflict - id: check-merge-conflict
...@@ -18,6 +18,8 @@ repos: ...@@ -18,6 +18,8 @@ repos:
- id: detect-private-key - id: detect-private-key
files: (?!.*third_party)^.*$ | (?!.*book)^.*$ files: (?!.*third_party)^.*$ | (?!.*book)^.*$
- id: end-of-file-fixer - id: end-of-file-fixer
- id: sort-simple-yaml
files: (api|backward)\.yaml$
- repo: local - repo: local
hooks: hooks:
- id: clang-format-with-version-check - id: clang-format-with-version-check
......
# - api : norm
# args : (Tensor x, int axis, float epsilon, bool is_test)
# output : Tensor(out), Tensor(norm)
# infer_meta :
# func : NormInferMeta
# kernel :
# func : norm
# intermediate : norm
# backward : norm_grad
# # maxout
# - api : maxout
# args : (Tensor x, int groups, int axis)
# output : Tensor
# infer_meta :
# func : MaxoutInferMeta
# kernel :
# func : maxout
# backward : maxout_grad
# # batch_norm
# - api : batch_norm
# args : (Tensor x, Tensor scale, Tensor bias, Tensor mean, Tensor variance, float momentum, float epsilon, str data_layout, bool is_test, bool use_global_stats, bool trainable_statistics, bool fuse_with_relu)
# output : Tensor(out), Tensor(mean_out), Tensor(variance_out), Tensor(saved_mean), Tensor(saved_variance), Tensor(reserve_space)
# infer_meta :
# func : XXXXInferMeta
# kernel :
# func : batch_norm
# backward: batch_norm_grad
# # bilinear_tensor_product ?? optional
# - api : bilinear_tensor_product
# args : (Tensor x, Tensor y, Tensor weight, Tensor bias)
# output : Tensor
# infer_meta :
# func : BilinearTensorProductInferMeta
# kernel :
# func : bilinear_tensor_product
# backward : bilinear_tensor_product_grad
# optional : bias
# broadcast_tensors
# - api : broadcast_tensors
# args : (Tensor[] x)
# output : Tensor[]
# infer_meta :
# func : BroadcastTensorsInferMeta
# kernel :
# func : broadcast_tensors
# backward : broadcast_tensors_grad
# # dropout
# - api : dropout
# args : (Tensor x, Tensor seed_tensor, float p, bool is_test, str mode, int seed, bool fix_seed)
# output : Tensor(out), Tensor(mask)
# infer_meta :
# func : DropoutInferMeta
# kernel :
# func : dropout
# # expand
# - api : expand
# args : (Tensor x, ScalarArray shape)
# output : Tensor
# infer_meta :
# func : ExpandInferMeta
# kernel :
# func : expand
# backward : expand_grad
# eye
# - api : eye
# args : (int64_t num_rows, int64_t num_colums, DataType dtype = DataType::FLOAT32)
# output : Tensor
# infer_meta :
# func : EyeInferMeta
# kernel :
# func : eye
# gaussian_random
# - api : gaussian_random
# args : (ScalarArray shape, float mean, float std, int seed, DataType dtype=DataType::FLOAT32)
# output : Tensor
# infer_meta :
# func : CreateInferMeta
# param : [shape, dtype]
# kernel :
# func : gaussian_random
# data_type : dtype
# # graph_send_recv
# - api : graph_send_recv
# args : (Tensor x, Tensor src_index, Tensor dst_index, str pool_type)
# output : Tensor(out), Tensor(dst_count)
# infer_meta :
# func : GraphSendRecvInferMeta
# kernel :
# func : graph_send_recv
# backward : graph_send_recv_grad
# # label_smooth
# - api : label_smooth
# args : (Tensor label, Tensor prior_dist, float epsilon)
# output : Tensor
# infer_meta :
# func : UnchangedInferMeta
# param : [label]
# kernel :
# func : label_smooth
# data_type : label
# optional : prior_dist
# backward : label_smooth_grad
# linspace start stop number
# - api : linspace
# args : (Tensor start, Tensor stop, Tensor number, DataType dtype=DataType::FLOAT32)
# output : Tensor
# infer_meta :
# func : LinspaceInferMeta
# kernel :
# func : linspace
# # multi_dot
# - api : multi_dot
# args : (Tensor[] x)
# output : Tensor
# infer_meta :
# func : MultiDotInferMeta
# kernel :
# func : multi_dot
# backward : multi_dot_grad
# # nll_loss
# - api : nll_loss
# args : (Tensor x, Tensor label, Tensor weight, int64_t ignore_index, str reduction)
# output : Tensor(out), Tensor(total_weight)
# infer_meta :
# func : NllLossRawInferMeta
# kernel :
# func : nll_loss
# data_type : x
# optional : weight
# backward : nll_loss_grad
# # psroi_pool
# - api : psroi_pool
# args : (Tensor x, Tensor rois, Tensor rois_num, int pooled_weight, int pooled_width, int output_channels, float spatial_scale )
# output : Tensor
# infer_meta :
# func : PsroiPoolInferMeta
# kernel :
# func : psroi_pool
# backward : psroi_pool_grad
# optional : rois_num
# # randint
# - api : randint
# args : (int low, int high, ScalarArray shape, DataType dtype)
# output : Tensor
# infer_meta :
# func : RandintInferMeta
# kernel :
# func : randint
# # randperm
# - api : randperm
# args : (int n, DataType dtype)
# output : Tensor
# infer_meta :
# func : RandpermInferMeta
# kernel :
# func : randperm
# # max
# - api : max
# args : (Tensor x, int64_t[] dims, bool keep_dim)
# output : Tensor
# infer_meta :
# func : MaxInferMeta
# kernel :
# func : max
# # top_k
# - api : top_k
# args : (Tensor x, Scalar k, int axis = -1, bool largest = true, bool sorted = true)
# output : Tensor(out), Tensor(indices)
# infer_meta :
# func : TopKInferMeta
# kernel :
# func : top_k
# backward : top_k_grad
# # phi_transfer_layout | not have python api
# # truncated_gaussian_random
# - api : truncated_gaussian_random
# args : (int[] shape, float mean, float std, int seed, DataType dtype)
# output : Tensor
# infer_meta :
# func : TruncatedGaussianRandomInferMeta
# kernel :
# func : truncated_gaussian_random
# # unbind
# - api : unbind
# args : (Tensor x, int axis)
# output : Tensor[]
# infer_meta :
# func : UnbindInferMeta
# kernel :
# func : unbind
# # uniform_random_raw selected rows ??
# - api : pixel_shuffle
# args : (Tensor x, int upscale_factor, const std::string& data_format)
# output : Tensor
# infer_meta :
# func : PixelShuffleInferMeta
# kernel :
# func : pixel_shuffle
# BilinearTensorProductInferMeta
# BroadcastTensorsInferMeta
# bincount
# - api : bincount
# args : (Tensor x, Tensor weight, int minlength)
# output : Tensor
# infer_meta :
# func : BincountInferMeta
# kernel :
# func : bincount
# optional : weight
# expand_as
# - api : expand_as
# args : (Tensor x, Tensor y, int[] target_shape)
# output : Tensor
# infer_meta :
# func : ExpandAsInferMeta
# kernel :
# func : expand_as
# optional : y
# # backward : expand_as_grad
# # optional : y
# - api : equal_all
# args : (Tensor x, Tensor y)
# output : Tensor
# infer_meta :
# func : CompareAllInferMeta
# kernel :
# func : equal_all
# histogram
# - api : histogram
# args : (Tensor x, int64_t bins, int min, int max)
# output : Tensor
# infer_meta :
# func : HistogramInferMeta
# kernel :
# func : histogram
- api : abs
args : (Tensor x)
output : Tensor
infer_meta :
func : UnchangedInferMeta
kernel :
func : abs
backward : abs_grad
# accuracy
- api : accuracy
args : (Tensor x, Tensor indices, Tensor label)
output : Tensor(accuracy), Tensor(correct), Tensor(total)
infer_meta :
func : AccuracyInferMeta
kernel :
func : accuracy
dtype : x
# acos
- api : acos
args : (Tensor x)
output : Tensor
infer_meta :
func : UnchangedInferMeta
kernel :
func : acos
backward : acos_grad
# acosh
- api : acosh
args : (Tensor x)
output : Tensor
infer_meta :
func : UnchangedInferMeta
kernel :
func : acosh
backward : acosh_grad
- api : adadelta
args : (Tensor param, Tensor grad, Tensor avg_squared_grad, Tensor avg_squared_update, float rho, float epsilon)
output : Tensor(param_out), Tensor(moment_out), Tensor(inf_norm_out)
infer_meta :
func : AdadeltaInferMeta
kernel :
func : adadelta
- api : adamax
args : (Tensor param, Tensor grad, Tensor learning_rate, Tensor moment, Tensor inf_norm, Tensor beta1_pow, float beta1, float beta2, float epsilon)
output : Tensor(param_out), Tensor(avg_squared_grad_out), Tensor(avg_squared_update_out)
infer_meta :
func : AdamaxInferMeta
kernel :
func : adamax
- api : add - api : add
args : (Tensor x, Tensor y) args : (Tensor x, Tensor y)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : ElementwiseInferMeta func : ElementwiseInferMeta
kernel :
func : add
backward : add_grad
# no_need_buffer : x, y
- api : addmm
args : (Tensor input, Tensor x, Tensor y, float alpha, float beta)
output : Tensor
infer_meta :
func : AddmmInferMeta
kernel :
func : addmm
backward : addmm_grad
# arg_max
- api : argmax
args : (Tensor x, int64_t axis, bool keepdims, bool flatten, int dtype)
output : Tensor
infer_meta :
func : ArgMinMaxInferMeta
kernel :
func : arg_max
# arg_min
- api : argmin
args : (Tensor x, int64_t axis, bool keepdims, bool flatten, int dtype)
output : Tensor
infer_meta :
func : ArgMinMaxInferMeta
kernel :
func : arg_min
# argsort
- api : argsort
args : (Tensor x, int axis, bool descending)
output : Tensor(out), Tensor(indices)
infer_meta :
func : ArgsortInferMeta
kernel :
func : argsort
backward : argsort_grad
# no_need_buffer : x
# asin
- api : asin
args : (Tensor x)
output : Tensor
infer_meta :
func : UnchangedInferMeta
kernel :
func : asin
backward : asin_grad
# asinh
- api : asinh
args : (Tensor x)
output : Tensor
infer_meta :
func : UnchangedInferMeta
kernel :
func : asinh
backward : asinh_grad
# atan
- api : atan
args : (Tensor x)
output : Tensor
infer_meta :
func : UnchangedInferMeta
kernel :
func : atan
backward : atan_grad
- api : atan2
args : (Tensor x, Tensor y)
output : Tensor
infer_meta :
func : Atan2InferMeta
kernel :
func : atan2
backward : atan2_grad
# atanh
- api : atanh
args : (Tensor x)
output : Tensor
infer_meta :
func : UnchangedInferMeta
kernel :
func : atanh
backward : atanh_grad
# auc
- api : auc
args : (Tensor x, Tensor label, Tensor stat_pos, Tensor stat_neg, str curve, int num_thresholds, int slide_steps)
output : Tensor(auc), Tensor(stat_pos_out), Tensor(stat_neg_out)
infer_meta :
func : AucInferMeta
kernel :
func : auc
- api : bce_loss
args : (Tensor input, Tensor label)
output : Tensor
infer_meta :
func : BCELossInferMeta
kernel :
func : bce_loss
backward : bce_loss_grad
# bernoulli
- api : bernoulli
args : (Tensor x)
output : Tensor
infer_meta :
func : UnchangedInferMeta
kernel :
func : bernoulli
# bitwise_and
- api : bitwise_and
args : (Tensor x, Tensor y)
output : Tensor
infer_meta :
func : ElementwiseInferMeta
kernel :
func : bitwise_and
# bitwise_not
- api : bitwise_not
args : (Tensor x)
output : Tensor
infer_meta :
func : UnchangedInferMeta
kernel :
func : bitwise_not
# bitwise_or
- api : bitwise_or
args : (Tensor x, Tensor y)
output : Tensor
infer_meta :
func : ElementwiseInferMeta
kernel :
func : bitwise_or
# bitwise_xor
- api : bitwise_xor
args : (Tensor x, Tensor y)
output : Tensor
infer_meta :
func : ElementwiseInferMeta
kernel :
func : bitwise_xor
# brelu
- api : brelu
args : (Tensor x, float t_min, float t_max)
output : Tensor
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : brelu
backward : brelu_grad
- api : cast
args : (Tensor x, DataType out_dtype)
output : Tensor
infer_meta :
func : CastInferMeta
kernel :
func : cast
param : [x, out_dtype]
data_type : x
backward : cast_grad
# cholesky
- api : cholesky
args : (Tensor x, bool upper)
output : Tensor
infer_meta :
func : CholeskyInferMeta
kernel :
func : cholesky
backward : cholesky_grad
# cholesky_solve
- api : cholesky_solve
args : (Tensor x, Tensor y, bool upper)
output : Tensor
infer_meta :
func : CholeskySolveInferMeta
kernel :
func : cholesky_solve
backward : cholesky_solve_grad
- api : concat
args : (Tensor[] x, Scalar(int64_t) axis)
output : Tensor
infer_meta :
func : ConcatInferMeta
param : [x, axis]
kernel :
func : concat
- api : conj
args : (Tensor x)
output : Tensor
infer_meta :
func : UnchangedInferMeta
kernel :
func : conj
- api : copy_to
args : (Tensor x, Place place, bool blocking)
output : Tensor
invoke : copy_to_impl(x, place, blocking)
# cos
- api : cos
args : (Tensor x)
output : Tensor
infer_meta :
func : UnchangedInferMeta
kernel :
func : cos
backward : cos_grad
# cosh
- api : cosh
args : (Tensor x)
output : Tensor
infer_meta :
func : UnchangedInferMeta
kernel :
func : cosh
backward : cosh_grad
- api : cross
args : (Tensor x, Tensor y, int axis = 9)
output : Tensor
infer_meta :
func : CrossInferMeta
kernel :
func : cross
backward : cross_grad
# cumsum
- api : cumsum
args : (Tensor x, int axis, bool flatten, bool exclusive, bool reverse)
output : Tensor
infer_meta :
func : CumsumInferMeta
kernel :
func : cumsum
- api : diag
args : (Tensor x, int offset, float padding_value)
output : Tensor
infer_meta :
func : DiagInferMeta
kernel :
func : diag
- api : diagonal
args : (Tensor x, int offset, int axis1, int axis2)
output : Tensor
infer_meta :
func : DiagonalInferMeta
kernel :
func : diagonal
backward : diagonal_grad
# no_need_buffer : x
- api : digamma
args : (Tensor x)
output : Tensor
infer_meta :
func : UnchangedInferMeta
kernel :
func : digamma
backward : digamma_grad
- api : dist
args : (Tensor x, Tensor y, float p)
output : Tensor
infer_meta :
func : DistInferMeta
kernel :
func : dist
backward : dist_grad
- api : divide
args : (Tensor x, Tensor y)
output : Tensor
infer_meta :
func : ElementwiseInferMeta
kernel :
func : divide
backward : divide_grad
- api : dot
args : (Tensor x, Tensor y)
output : Tensor
infer_meta :
func : DotInferMeta
kernel :
func : dot
# eigh
- api : eigh
args : (Tensor x, str uplo)
output : Tensor(out_w), Tensor(out_v)
infer_meta :
func : EighInferMeta
kernel :
func : eigh
backward : eigh_grad
# elu
- api : elu
args : (Tensor x, float alpha)
output : Tensor
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : elu
backward : elu_grad
- api : empty
args : (ScalarArray shape, DataType dtype=DataType::FLOAT32, Place place=CPUPlace())
output: Tensor
infer_meta :
func : CreateInferMeta
param : [shape, dtype]
kernel :
func : empty
param : [shape, dtype]
data_type : dtype
backend : place
- api : empty_like
args : (Tensor x, DataType dtype = DataType::UNDEFINED, Place place = {})
output: Tensor
infer_meta :
func : CreateLikeInferMeta
param : [x, dtype]
kernel :
func : empty_like
param : [x, dtype]
data_type : dtype > x
backend : place > x
- api : equal
args : (Tensor x, Tensor y, int axis = -1)
output : Tensor
infer_meta :
func : CompareInferMeta
kernel :
func : equal
# erf
- api : erf
args : (Tensor x)
output : Tensor
infer_meta :
func : UnchangedInferMeta
kernel :
func : erf
backward : erf_grad
# erfinv
- api : erfinv
args : (Tensor x)
output : Tensor
infer_meta :
func : UnchangedInferMeta
kernel :
func : erfinv
backward : erfinv_grad
- api : flatten
args : (Tensor x, int start_axis, int stop_axis)
output : Tensor
infer_meta :
func : FlattenInferMeta
kernel :
func : flatten
# flip
- api : flip
args : (Tensor x, int[] axis)
output : Tensor
infer_meta :
func : FlipInferMeta
kernel :
func : flip
- api : full
args : (ScalarArray shape, Scalar value, DataType dtype=DataType::FLOAT32, Place place=CPUPlace())
output: Tensor
infer_meta :
func : CreateInferMeta
param : [shape, dtype]
kernel :
func : full
param : [shape, value, dtype]
data_type : dtype
backend : place
- api : full_like
args : (Tensor x, Scalar value, DataType dtype = DataType::UNDEFINED, Place place = {})
output: Tensor
infer_meta :
func : CreateLikeInferMeta
param : [x, dtype]
kernel :
func : full_like
param : [x, value, dtype]
data_type : dtype > x
backend : place > x
- api : gather_nd
args : (Tensor x, Tensor index)
output : Tensor
infer_meta :
func : GatherNdInferMeta
kernel :
func : gather_nd
data_type : x
backward : gather_nd_grad
- api : gather_tree
args : (Tensor ids, Tensor parents)
output : Tensor
infer_meta :
func : GatherTreeMeta
kernel :
func : gather_tree
- api : greater
args : (Tensor x, Tensor y, int axis = -1)
output : Tensor
infer_meta :
func : CompareInferMeta
kernel :
func : greater
- api : greater_equal
args : (Tensor x, Tensor y, int axis = -1)
output : Tensor
infer_meta :
func : CompareInferMeta
kernel :
func : greater_equal
- api : gumbel_softmax
args : (Tensor x, float temperature, bool hard, int axis)
output : Tensor
infer_meta :
func : GumbelSoftmaxInferMeta
kernel :
func : gumbel_softmax
# backward : gumbel_softmax_grad
# hard_shrink
- api : hard_shrink
args : (Tensor x, float threshold)
output : Tensor
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel : kernel :
func : add func : hard_shrink
backward : add_grad backward : hard_shrink_grad
- api : cast # hard_sigmoid
args : (Tensor x, DataType out_dtype) - api : hard_sigmoid
args : (Tensor x, float slope, float offset)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : CastInferMeta func : UnchangedInferMeta
param : [x]
kernel : kernel :
func : cast func : hard_sigmoid
param : [x, out_dtype] backward : hard_sigmoid_grad
data_type : x
backward : cast_grad
- api : huber_loss
args : (Tensor input, Tensor label, float delta)
output : Tensor(out), Tensor(residual)
infer_meta :
func : HuberLossInferMeta
kernel :
func : huber_loss
# backward : huber_loss_grad
- api : concat # increment
args : (Tensor[] x, Scalar(int64_t) axis) - api : increment
args : (Tensor x, float value)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : ConcatInferMeta func : IncrementInferMeta
param : [x, axis]
kernel : kernel :
func : concat func : increment
- api : conj - api : index_sample
args : (Tensor x, Tensor index)
output : Tensor
infer_meta :
func : IndexSampleInferMeta
kernel :
func : index_sample
data_type : x
backward : index_sample_grad
# no_need_buffer : x
# is_empty
- api : is_empty
args : (Tensor x) args : (Tensor x)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : UnchangedInferMeta func : IsEmptyInferMeta
kernel : kernel :
func : conj func : is_empty
- api : copy_to # isfinite
args : (Tensor x, Place place, bool blocking) - api : isfinite
args : (Tensor x)
output : Tensor output : Tensor
invoke : copy_to_impl(x, place, blocking) infer_meta :
func : IsfiniteInferMeta
kernel :
func : isfinite, infinite_sr
- api : divide # isinf
args : (Tensor x, Tensor y) - api : isinf
args : (Tensor x)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : ElementwiseInferMeta func : IsfiniteInferMeta
kernel : kernel :
func : divide func : isinf, isinf_sr
backward : divide_grad
- api : dot # isnan
args : (Tensor x, Tensor y) - api : isnan
args : (Tensor x)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : DotInferMeta func : IsfiniteInferMeta
kernel : kernel :
func : dot func : isnan, isnan_sr
- api : empty # leaky_relu
args : (ScalarArray shape, DataType dtype=DataType::FLOAT32, Place place=CPUPlace()) - api : leaky_relu
output: Tensor args : (Tensor x, float alpha)
output : Tensor
infer_meta : infer_meta :
func : CreateInferMeta func : UnchangedInferMeta
param : [shape, dtype] param : [x]
kernel : kernel :
func : empty func : leaky_relu
param : [shape, dtype] backward : leaky_relu_grad
data_type : dtype
backend : place
- api : empty_like - api : lerp
args : (Tensor x, DataType dtype = DataType::UNDEFINED, Place place = {}) args : (Tensor x, Tensor y, Tensor weight)
output: Tensor output : Tensor
infer_meta : infer_meta :
func : CreateLikeInferMeta func : LerpInferMeta
param : [x, dtype]
kernel : kernel :
func : empty_like func : lerp
param : [x, dtype] backward : lerp_grad
data_type : dtype > x
backend : place > x
- api : flatten - api : less_equal
args : (Tensor x, int start_axis, int stop_axis) args : (Tensor x, Tensor y, int axis = -1)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : FlattenInferMeta func : CompareInferMeta
kernel : kernel :
func : flatten func : less_equal
- api : full - api : less_than
args : (ScalarArray shape, Scalar value, DataType dtype=DataType::FLOAT32, Place place=CPUPlace()) args : (Tensor x, Tensor y, int axis = -1)
output: Tensor output : Tensor
infer_meta : infer_meta :
func : CreateInferMeta func : CompareInferMeta
param : [shape, dtype]
kernel : kernel :
func : full func : less_than
param : [shape, value, dtype]
data_type : dtype
backend : place
- api : full_like # log_loss
args : (Tensor x, Scalar value, DataType dtype = DataType::UNDEFINED, Place place = {}) - api : log_loss
output: Tensor args : (Tensor input, Tensor label, float epsilon)
output : Tensor
infer_meta : infer_meta :
func : CreateLikeInferMeta func : LogLossInferMeta
param : [x, dtype]
kernel : kernel :
func : full_like func : log_loss
param : [x, value, dtype] backward : log_loss_grad
data_type : dtype > x
backend : place > x
- api : matmul # logical_and
args : (Tensor x, Tensor y, bool transpose_x = false, bool transpose_y = false) - api : logical_and
args : (Tensor x, Tensor y)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : MatmulInferMeta func : ElementwiseInferMeta
kernel : kernel :
func : matmul func : logical_and
backward : matmul_grad
- api : mean # logical_not
args : (Tensor x, int64_t[] axis={}, bool keep_dim=false) - api : logical_not
args : (Tensor x)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : ReduceInferMeta func : UnchangedInferMeta
kernel : kernel :
func : mean func : logical_not
- api : multiply # logical_or
- api : logical_or
args : (Tensor x, Tensor y) args : (Tensor x, Tensor y)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : ElementwiseInferMeta func : ElementwiseInferMeta
kernel : kernel :
func : multiply func : logical_or
backward : multiply_grad
- api : ones_like # logical_xor
args : (Tensor x, DataType dtype=DataType::UNDEFINED, Place place={}) - api : logical_xor
args : (Tensor x, Tensor y)
output : Tensor output : Tensor
invoke : full_like(x, 1, dtype, place) infer_meta :
func : ElementwiseInferMeta
kernel :
func : logical_xor
- api : pool2d # logsigmoid
args : (Tensor x, int[] kernel_size, int[] strides, int[] paddings, bool ceil_mode, bool exclusive, str data_format, str pooling_type, bool global_pooling, bool adaptive, str padding_algorithm) - api : logsigmoid
output : Tensor(out) args : (Tensor x)
output : Tensor
infer_meta : infer_meta :
func : PoolInferMeta func : UnchangedInferMeta
kernel: kernel :
func : pool2d func : logsigmoid
backward : logsigmoid_grad
- api : reshape # masked_select
args : (Tensor x, ScalarArray shape) - api : masked_select
output : Tensor(out) args : (Tensor x, Tensor mask)
output : Tensor
infer_meta : infer_meta :
func : ReshapeInferMeta func : MaskedSelectInferMeta
kernel : kernel :
func : reshape func : masked_select
inplace : (x -> out) data_type : x
backward : masked_select_grad
- api : relu - api : matmul
args : (Tensor x) args : (Tensor x, Tensor y, bool transpose_x = false, bool transpose_y = false)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : UnchangedInferMeta func : MatmulInferMeta
kernel : kernel :
func : relu func : matmul
inplace : (x -> out) backward : matmul_grad
backward: relu_grad
- api : scale # matrix_power
args : (Tensor x, Scalar scale, float bias, bool bias_after_scale) - api : matrix_power
args : (Tensor x, int n)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : UnchangedInferMeta func : UnchangedInferMeta
param : [x] param : [x]
kernel : kernel :
func : scale, scale_sr func : matrix_power
inplace : (x -> out) backward : matrix_power_grad
- api : sign - api : mean
args : (Tensor x) args : (Tensor x, int64_t[] axis={}, bool keep_dim=false)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : UnchangedInferMeta func : ReduceInferMeta
kernel : kernel :
func : sign func : mean
- api : softmax # multinomial
args : (Tensor x, int axis) - api : multinomial
args : (Tensor x, int num_samples, bool replacement)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : SoftmaxInferMeta func : MultinomialInferMeta
kernel : kernel :
func : sotfmax func : multinomial
- api : split - api : multiply
args : (Tensor x, ScalarArray num_or_sections, Scalar(int) axis)
output : Tensor[]
invoke : split_impl(x, num_or_sections, axis)
- api : subtract
args : (Tensor x, Tensor y) args : (Tensor x, Tensor y)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : ElementwiseInferMeta func : ElementwiseInferMeta
kernel : kernel :
func : subtract func : multiply
backward : subtract_grad backward : multiply_grad
- api : sum - api : mv
args : (Tensor x, int64_t[] axis={}, DataType dtype=DataType::UNDEFINED, bool keep_dim=false) args : (Tensor x, Tensor vec)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : SumInferMeta func : MvInferMeta
kernel : kernel :
func : sum func : mv
data_type : x backward : mv_grad
- api : zeros_like - api : not_equal
args : (Tensor x, DataType dtype=DataType::UNDEFINED, Place place = {}) args : (Tensor x, Tensor y, int axis = -1)
output : Tensor output : Tensor
invoke : full_like(x, 0, dtype, place) infer_meta :
func : CompareInferMeta
kernel :
func : not_equal
- api : one_hot - api : one_hot
args : (Tensor x, Scalar(int) num_classes) args : (Tensor x, Scalar(int) num_classes)
...@@ -235,94 +1051,97 @@ ...@@ -235,94 +1051,97 @@
kernel : kernel :
func : one_hot func : one_hot
- api : digamma - api : ones_like
args : (Tensor x) args : (Tensor x, DataType dtype=DataType::UNDEFINED, Place place={})
output : Tensor
invoke : full_like(x, 1, dtype, place)
# pad
- api : pad
args : (Tensor x, int[] paddings, float pad_value)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : UnchangedInferMeta func : PadInferMeta
kernel : kernel :
func : digamma func : pad
backward : digamma_grad # backward : pad_grad
- api : abs # pixel_shuffle
args : (Tensor x) - api : pixel_shuffle
args : (Tensor x, int upscale_factor, str data_format)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : UnchangedInferMeta func : PixelShuffleInferMeta
kernel : kernel :
func : abs func : pixel_shuffle
backward : abs_grad # backward : pixel_shuffle_grad
- api : trunc # poisson // no need grad
- api : poisson
args : (Tensor x) args : (Tensor x)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : UnchangedInferMeta func : UnchangedInferMeta
kernel : kernel :
func : trunc func : poisson
backward : trunc_grad
# - api : norm - api : pool2d
# args : (Tensor x, int axis, float epsilon, bool is_test) args : (Tensor x, int[] kernel_size, int[] strides, int[] paddings, bool ceil_mode, bool exclusive, str data_format, str pooling_type, bool global_pooling, bool adaptive, str padding_algorithm)
# output : Tensor(out), Tensor(norm) output : Tensor(out)
# infer_meta : infer_meta :
# func : NormInferMeta func : PoolInferMeta
# kernel : kernel:
# func : norm func : pool2d
# intermediate : norm
# backward : norm_grad
- api : diagonal # put_along_axis
args : (Tensor x, int offset, int axis1, int axis2) - api : put_along_axis
args : (Tensor x, Tensor index, Tensor value, int axis, str reduce)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : DiagonalInferMeta func : UnchangedInferMeta
param : [index]
kernel : kernel :
func : diagonal func : put_along_axis
backward : diagonal_grad data_type : x
backward : put_along_axis_grad
- api : gumbel_softmax # reduce_prod
args : (Tensor x, float temperature, bool hard, int axis) - api : reduce_prod
args : (Tensor x, int64_t[] dims, bool keep_dim, bool reduce_all)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : GumbelSoftmaxInferMeta func : ReduceInferMetaBase
kernel : kernel :
func : gumbel_softmax func : reduce_prod
# backward : gumbel_softmax_grad
- api : diag - api : relu
args : (Tensor x, int offset, float padding_value) args : (Tensor x)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : DiagInferMeta func : UnchangedInferMeta
kernel : kernel :
func : diag func : relu
inplace : (x -> out)
# - api : pixel_shuffle backward : relu_grad
# args : (Tensor x, int upscale_factor, const std::string& data_format)
# output : Tensor
# infer_meta :
# func : PixelShuffleInferMeta
# kernel :
# func : pixel_shuffle
- api : transpose - api : reshape
args : (Tensor x, int[] axis) args : (Tensor x, ScalarArray shape)
output : Tensor output : Tensor(out)
infer_meta : infer_meta :
func : TransposeInferMeta func : ReshapeInferMeta
kernel : kernel :
func : transpose func : reshape
backward : transpose_grad inplace : (x -> out)
- api : lerp - api : scale
args : (Tensor x, Tensor y, Tensor weight) args : (Tensor x, Scalar scale, float bias, bool bias_after_scale)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : LerpInferMeta func : UnchangedInferMeta
param : [x]
kernel : kernel :
func : lerp func : scale, scale_sr
# backward : lerp_grad inplace : (x -> out)
- api : scatter - api : scatter
args : (Tensor x, Tensor index, Tensor updates, bool overwrite) args : (Tensor x, Tensor index, Tensor updates, bool overwrite)
...@@ -333,7 +1152,7 @@ ...@@ -333,7 +1152,7 @@
kernel : kernel :
func : scatter func : scatter
backward : scatter_grad backward : scatter_grad
# no_need_buffer : updates
- api : scatter_nd_add - api : scatter_nd_add
args : (Tensor x, Tensor index, Tensor updates) args : (Tensor x, Tensor index, Tensor updates)
...@@ -344,214 +1163,302 @@ ...@@ -344,214 +1163,302 @@
kernel : kernel :
func : scatter_nd_add func : scatter_nd_add
backward : scatter_nd_add_grad backward : scatter_nd_add_grad
# no_need_buffer : updates
# segment_pool
- api : segment_pool
args : (Tensor x, Tensor segment_ids, str pooltype)
output : Tensor(out), Tensor(summed_ids)
infer_meta :
func : SegmentPoolInferMeta
kernel :
func : segment_pool
backward : segment_pool_grad
- api : addmm # selu
args : (Tensor input, Tensor x, Tensor y, float alpha, float beta) - api : selu
args : (Tensor x, float scale, float alpha)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : AddmmInferMeta func : UnchangedInferMeta
param : [x]
kernel : kernel :
func : addmm func : selu
backward : addmm_grad backward : selu_grad
# shard_index
- api : adadelta - api : shard_index
args : (Tensor param, Tensor grad, Tensor avg_squared_grad, Tensor avg_squared_update, float rho, float epsilon) args : (Tensor in, int index_num, int nshards, int shard_id, int ignore_value)
output : Tensor(param_out), Tensor(moment_out), Tensor(inf_norm_out) output : Tensor
infer_meta : infer_meta :
func : AdadeltaInferMeta func : ShardIndexInferMeta
kernel : kernel :
func : adadelta func : shard_index
- api : adamax # sigmoid
args : (Tensor param, Tensor grad, Tensor learning_rate, Tensor moment, Tensor inf_norm, Tensor beta1_pow, float beta1, float beta2, float epsilon) - api : sigmoid
output : Tensor(param_out), Tensor(avg_squared_grad_out), Tensor(avg_squared_update_out) args : (Tensor x)
output : Tensor
infer_meta : infer_meta :
func : AdamaxInferMeta func : UnchangedInferMeta
kernel : kernel :
func : adamax func : sigmoid
backward : sigmoid_grad
# sigmoid_cross_entropy_with_logits
- api : where - api : sigmoid_cross_entropy_with_logits
args : (Tensor condition, Tensor x, Tensor y) args : (Tensor x, Tensor label, bool normalize, int ignore_index)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : WhereInferMeta func : SigmoidCrossEntropyWithLogitsInferMeta
kernel : kernel :
func : where func : sigmoid_cross_entropy_with_logits
backward : where_grad backward : sigmoid_cross_entropy_with_logits_grad
# BilinearTensorProductInferMeta
# BroadcastTensorsInferMeta
- api : less_than - api : sign
args : (Tensor x, Tensor y, int axis = -1) args : (Tensor x)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : CompareInferMeta func : UnchangedInferMeta
kernel : kernel :
func : less_than func : sign
- api : less_equal # silu
args : (Tensor x, Tensor y, int axis = -1) - api : silu
args : (Tensor x)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : CompareInferMeta func : UnchangedInferMeta
kernel : kernel :
func : less_equal func : silu
backward : silu_grad
- api : greater # sin
args : (Tensor x, Tensor y, int axis = -1) - api : sin
args : (Tensor x)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : CompareInferMeta func : UnchangedInferMeta
kernel : kernel :
func : greater func : sin
backward : sin_grad
- api : greater_equal # sinh
args : (Tensor x, Tensor y, int axis = -1) - api : sinh
args : (Tensor x)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : CompareInferMeta func : UnchangedInferMeta
kernel : kernel :
func : greater_equal func : sinh
backward : sinh_grad
- api : equal # size
args : (Tensor x, Tensor y, int axis = -1) - api : size
args : (Tensor x)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : CompareInferMeta func : SizeInferMeta
kernel : kernel :
func : equal func : size
- api : not_equal # soft_shrink
args : (Tensor x, Tensor y, int axis = -1) - api : soft_shrink
args : (Tensor x, float lambda)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : CompareInferMeta func : UnchangedInferMeta
param : [x]
kernel : kernel :
func : not_equal func : soft_shrink
backward : soft_shrink_grad
# - api : equal_all - api : softmax
# args : (Tensor x, Tensor y) args : (Tensor x, int axis)
# output : Tensor output : Tensor
# infer_meta : infer_meta :
# func : CompareAllInferMeta func : SoftmaxInferMeta
# kernel : kernel :
# func : equal_all func : softmax
backward : softmax_grad
- api : split
args : (Tensor x, ScalarArray num_or_sections, Scalar(int) axis)
output : Tensor[]
invoke : split_impl(x, num_or_sections, axis)
- api : huber_loss - api : subtract
args : (Tensor input, Tensor label, float delta) args : (Tensor x, Tensor y)
output : Tensor(out), Tensor(residual) output : Tensor
infer_meta : infer_meta :
func : HuberLossInferMeta func : ElementwiseInferMeta
kernel : kernel :
func : huber_loss func : subtract
# backward : huber_loss_grad backward : subtract_grad
# no_need_buffer : x, y
- api : triangular_solve - api : sum
args : (Tensor x, Tensor y, bool upper, bool tranpose, bool unitriangular) args : (Tensor x, int64_t[] axis={}, DataType dtype=DataType::UNDEFINED, bool keep_dim=false)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : TriangularSolveInferMeta func : SumInferMeta
kernel : kernel :
func : triangular_solve func : sum
# backward : triangular_solve_grad data_type : x
- api : index_sample # take_along_axis
args : (Tensor x, Tensor index) - api : take_along_axis
args : (Tensor x, Tensor index, int axis)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : IndexSampleInferMeta func : UnchangedInferMeta
param : [index]
kernel : kernel :
func : index_sample func : take_along_axis
data_type : x data_type : x
backward : index_sample_grad backward : take_along_axis_grad
# tan
- api : cross - api : tan
args : (Tensor x, Tensor y, int axis = 9) args : (Tensor x)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : CrossInferMeta func : UnchangedInferMeta
kernel : kernel :
func : cross func : tan
backward : cross_grad backward : tan_grad
# tanh
- api : atan2 - api : tanh
args : (Tensor x, Tensor y) args : (Tensor x)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : Atan2InferMeta func : UnchangedInferMeta
kernel : kernel :
func : atan2 func : tanh
backward : atan2_grad backward : tanh_grad
# tanh_shrink
- api : bce_loss - api : tanh_shrink
args : (Tensor input, Tensor label) args : (Tensor x)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : BCELossInferMeta func : UnchangedInferMeta
kernel : kernel :
func : bce_loss func : tanh_shrink
backward : bce_loss_grad backward : tanh_shrink_grad
# thresholded_relu
- api : dist - api : thresholded_relu
args : (Tensor x, Tensor y, float p) args : (Tensor x, float threshold)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : DistInferMeta func : UnchangedInferMeta
param : [x]
kernel : kernel :
func : dist func : thresholded_relu
# backward : dist_grad backward : thresholded_relu_grad
- api : gather_nd # tile
args : (Tensor x, Tensor index) - api : tile
args : (Tensor x, ScalarArray repeat_times)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : GatherNdInferMeta func : TileInferMeta
kernel : kernel :
func : gather_nd func : tile
data_type : x backward : tile_grad
backward : gather_nd_grad # no_need_buffer : x
- api : gather_tree # trace
args : (Tensor ids, Tensor parents) - api : trace
args : (Tensor x, int offset, int axis1, int axis2)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : GatherTreeMeta func : TraceInferMeta
kernel : kernel :
func : gather_tree func : trace
backward : trace_grad
no_need_buffer : x
- api : mv - api : transpose
args : (Tensor x, Tensor vec) args : (Tensor x, int[] axis)
output : Tensor output : Tensor
infer_meta : infer_meta :
func : MvInferMeta func : TransposeInferMeta
kernel : kernel :
func : mv func : transpose
backward : mv_grad backward : transpose_grad
# =================================== sep0 - api : triangular_solve
args : (Tensor x, Tensor y, bool upper, bool transpose, bool unitriangular)
output : Tensor
infer_meta :
func : TriangularSolveInferMeta
kernel :
func : triangular_solve
# backward : triangular_solve_grad
- api : trunc
args : (Tensor x)
output : Tensor
infer_meta :
func : UnchangedInferMeta
kernel :
func : trunc
backward : trunc_grad
# =================================== sep1 # unfold
- api : unfold
args : (Tensor x, int[] kernel_sizes, int[] strides, int[] paddings, int[] dilations)
output : Tensor
infer_meta :
func : UnfoldInferMeta
kernel :
func : unfold
backward : unfold_grad
# no_need_buffer : x
# viterbi_decode
- api : viterbi_decode
args : (Tensor input, Tensor transition, Tensor length, bool include_bos_eos_tag)
output : Tensor(scores), Tensor(path)
infer_meta :
func : ViterbiDecodeInferMeta
kernel :
func : viterbi_decode
data_type : input
- api : where
args : (Tensor condition, Tensor x, Tensor y)
output : Tensor
infer_meta :
func : WhereInferMeta
kernel :
func : where
backward : where_grad
# =================================== sep2 # where_index
- api : where_index
args : (Tensor condition)
output : Tensor
infer_meta :
func : WhereIndexInferMeta
kernel :
func : where_index
# no_need_buffer : x, y
# yolo_box
- api : yolo_box
args : (Tensor x, Tensor img_size, int[] anchors, int class_num, float conf_thresh, int downsample_ratio, bool clip_bbox, float scale_x_y=1.0, bool iou_aware=false, float iou_aware_factor=0.5)
output : Tensor(boxes), Tensor(scores)
infer_meta :
func : YoloBoxInferMeta
kernel :
func : yolo_box
data_type : x
# =================================== sep3 - api : zeros_like
args : (Tensor x, DataType dtype=DataType::UNDEFINED, Place place = {})
output : Tensor
invoke : full_like(x, 0, dtype, place)
- backward_api : matmul_grad # - backward_api : norm_grad
forward : matmul (Tensor x, Tensor y, bool transpose_x=false, bool transpose_y=false) -> Tensor(out) # forward : norm (Tensor x, int axis, float epsilon, bool is_test) -> Tensor(out), Tensor(norm)
args : (Tensor x, Tensor y, Tensor out_grad, bool transpose_x=false, bool transpose_y=false) # args : (Tensor x, Tensor norm, Tensor out_grad, int axis, float epsilon, bool is_test)
output : Tensor(x_grad), Tensor(y_grad) # output : Tensor(x_grad)
# infer_meta :
# func : UnchangedInferMeta
# param : [x]
# kernel :
# func : norm_grad
# - backward_api : matmul_triple_grad
# forward : matmul_double_grad (Tensor x, Tensor y, Tensor out_grad, Tensor dx_grad, Tensor dy_grad, bool transpose_x, bool transpose_y) -> Tensor(d2x), Tensor(d2y), Tensor(dout_grad)
# args : (Tensor x, Tensor y, Tensor out_grad, Tensor dx_grad, Tensor dy_grad, Tensor d2x_grad, Tensor d2y_grad, Tensor dout_grad_grad, bool transpose_x, bool transpose_y)
# output : Tensor(d3x), Tensor(d3y), Tensor(d2out_grad), Tensor(ddx_grad), Tensor(ddy_grad)
# infer_meta :
# func : MatmulTripleGradInferMeta
# kernel :
# func : matmul_triple_grad
# - backward_api : maxout_grad
# forward : maxout (Tensor x, int groups, int axis) -> Tensor(out)
# args : (Tensor x, Tensor out, Tensor out_grad, int groups, int axis)
# output : Tensor(x_grad)
# infer_meta :
# func : UnchangedInferMeta
# param : [x]
# kernel :
# func : maxout_grad
# - backward_api : batch_norm_grad
# forward : batch_norm (Tensor x, Tensor scale, Tensor bias, Tensor mean, Tensor variance, float momentum, float epsilon, str data_layout, bool is_test, bool use_global_stats, bool trainable_statistics, bool fuse_with_relu) -> Tensor(out), Tensor(mean_out), Tensor(variance_out), Tensor(saved_mean), Tensor(saved_variance), Tensor(reserve_space)
# args : (Tensor indices, Tensor x, Tensor out_grad, int axis, bool descending)
# output : Tensor(x_grad), Tensor(scale_grad), Tensor(bias_grad)
# infer_meta :
# func : GeneralTernaryGradInferMeta
# param : [x, scale, bias]
# kernel :
# func : batch_norm_grad
# - backward_api : bilinear_tensor_product_grad
# forward : bilinear_tensor_product (Tensor x, Tensor y, Tensor weight, Tensor bias) -> Tensor(out)
# args : (Tensor x, Tensor y, Tensor weight, Tensor out_grad)
# output : Tensor(x_grad), Tensor(y_grad), Tensor(weight_grad), Tensor(bias_grad)
# infer_meta :
# func : FourXXXXInferMeta
# param : [x, y, weight, bias]
# kernel :
# func : bilinear_tensor_product_grad
# optional : bias
# - backward_api : broadcast_tensor_grad
# forward : broadcast_tensors (Tensor[] x) -> Tensor [] (out)
# args : (Tensor [] out_grad)
# output : Tensor [] (x_grad)
# infer_meta :
# func : XXXXInferMeta
# param : [out_grad]
# kernel :
# func : broadcast_tensor_grad
# - backward_api : gumbel_softmax_grad
# forward : gumbel_softmax (Tensor x, float temperature, bool hard, int axis) -> Tensor(out)
# args : (Tensor out, Tensor out_grad, int axis)
# output : Tensor(x_grad)
# infer_meta :
# func : GumbelSoftmaxGradInferMeta
# param : [out, out_grad, axis]
# kernel :
# func : gumbel_softmax_grad
# - backward_api : huber_loss_grad
# forward : huber_loss (Tensor input, Tensor label, float delta) -> Tensor(out), Tensor(residual)
# args : (Tensor residual, Tensor out_grad, float delta)
# output : Tensor(input_grad), Tensor(label_grad)
# infer_meta :
# func : GeneralBinaryGradInferMeta
# param : [x, y]
# kernel :
# func : where_grad
# - backward_api : triangular_solve_grad
# forward : triangular_solve (Tensor x, Tensor y, bool upper, bool tranpose, bool unitriangular) -> Tensor(out)
# args : (Tensor x, Tensor y, Tensor out, Tensor out_grad, bool upper, bool tranpose, bool unitriangular)
# output : Tensor(x_grad), Tensor(y_grad)
# infer_meta :
# func : GeneralBinaryGradInferMeta
# param : [x, y]
# kernel :
# func : triangular_solve_grad
# - backward_api : dropout_grad
# forward : dropout (Tensor x, Tensor seed_tensor, float p, bool is_test, str mode, int seed, bool fix_seed) -> Tensor(out), Tensor(mask)
# args : (Tensor mask, Tensor out_grad, float p, bool is_test, str mode)
# output : Tensor(x_grad)
# infer_meta :
# func : UnchangedInferMeta
# param : [out_grad]
# kernel :
# func : dropout_grad
# - backward_api : expand_as_grad
# forward : expand_as (Tensor x, Tensor y, int[] target_shape) -> Tensor(out)
# args : (Tensor x, Tensor out_grad, int[] target_shape)
# output : Tensor(x_grad)
# infer_meta :
# func : UnchangedInferMeta
# param : [x]
# kernel :
# func : expand_as_grad
# - backward_api : expand_grad
# forward : expand (Tensor x, ScalarArray shape) -> Tensor(out)
# args : (Tensor x, Tensor out_grad, ScalarArray shape)
# output : Tensor(x_grad)
# infer_meta :
# func : UnchangedGradInferMeta
# param : [x]
# kernel :
# func : expand_grad
# - backward_api : graph_send_recv_grad
# forward : graph_send_recv (Tensor x, Tensor src_index, Tensor dst_index, str pool_type) -> Tensor(out), Tensor(dst_count)
# args : (Tensor out_grad, Tensor x, Tensor out, Tensor src_index, Tensor dst_index, Tensor dst_count, str pool_type)
# output : Tensor(x_grad)
# infer_meta :
# func : UnchangedInferMeta
# param : [x]
# kernel :
# func : graph_send_recv_grad
# - backward_api : multi_dot_grad
# forward : multi_dot (Tensor[] x) -> Tensor(out)
# args : (Tensor out_grad, Tensor[] x)
# output : Tensor[] (x_grad)
# infer_meta :
# func : XXXXInferMeta
# param : [x]
# kernel :
# func : multi_dot_grad
# - backward_api : pad_grad
# forward : pad (Tensor x, int[] paddings, float pad_value) -> Tensor(out)
# args : (Tensor out_grad, int[] paddings, float pad_value)
# output : Tensor(x_grad)
# infer_meta :
# func : XXXXXInferMeta
# param : [x]
# kernel :
# func : pad_grad
# - backward_api : pixel_shuffle_grad
# forward : pixel_shuffle (Tensor x, int upscale_factor, str data_format) -> Tensor(out)
# args : (Tensor out_grad, int upscale_factor, str data_format)
# output : Tensor(x_grad)
# infer_meta :
# func : XXXXXInferMeta
# param : [x]
# kernel :
# func : pixel_shuffle_grad
# - backward_api : poisson_grad
# forward : poisson (Tensor x) -> Tensor(out)
# args : ()
# output : Tensor(x_grad)
# infer_meta :
# func : XXXXXInferMeta
# param : [x]
# kernel :
# func : poisson_grad
# - backward_api : where_index_grad
# forward : where_index (Tensor condition) -> Tensor(out)
# args : (Tensor out_grad, Tensor x, int offset, int axis1, int axis2)
# output : Tensor(x_grad)
# infer_meta :
# func : UnchangedInferMeta
# param : [x]
# kernel :
# func : where_index_grad
- backward_api : abs_grad
forward : abs (Tensor x) -> Tensor(out)
args : (Tensor x, Tensor out_grad)
output : Tensor(x_grad)
infer_meta : infer_meta :
func : GeneralBinaryGradInferMeta func : UnchangedInferMeta
param : [x, y] param : [out_grad]
kernel : kernel :
func : matmul_grad func : abs_grad
- backward_api : matmul_double_grad - backward_api : acos_grad
forward : matmul_grad (Tensor x, Tensor y, Tensor out_grad, bool transpose_x, bool transpose_y) -> Tensor(dx), Tensor(dy) forward : acos (Tensor x) -> Tensor(out)
args : (Tensor x, Tensor y, Tensor out_grad, Tensor dx_grad, Tensor dy_grad, bool transpose_x, bool transpose_y) args : (Tensor x, Tensor out_grad)
output : Tensor(d2x), Tensor(d2y), Tensor(dout_grad) output : Tensor(x_grad)
infer_meta : infer_meta :
func : GeneralTernaryGradInferMeta func : UnchangedInferMeta
param : [x, y, out_grad] param : [x]
kernel : kernel :
func : matmul_double_grad func : acos_grad
optional : dx_grad, dy_grad
- backward_api : scale_grad - backward_api : acosh_grad
forward : scale (Tensor x, Scalar scale, float bias, bool bias_after_scale) -> Tensor(out) forward : acosh (Tensor x) -> Tensor(out)
args : (Tensor out_grad, Scalar scale, float bias=0.0, bool bias_after_scale=true) args : (Tensor x, Tensor out_grad)
output : Tensor(x_grad) output : Tensor(x_grad)
invoke : scale(out_grad, scale, bias, bias_after_scale) infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : acosh_grad
- backward_api : add_grad - backward_api : add_grad
forward : add (Tensor x, Tensor y) -> Tensor(out) forward : add (Tensor x, Tensor y) -> Tensor(out)
...@@ -34,26 +217,188 @@ ...@@ -34,26 +217,188 @@
param : [x, y] param : [x, y]
kernel : kernel :
func : add_grad func : add_grad
no_need_buffer : x, y
- backward_api : subtract_grad - backward_api : addmm_grad
forward : subtract (Tensor x, Tensor y) -> Tensor(out) forward : scatter (Tensor input, Tensor x, Tensor y, float alpha, float beta) -> Tensor(out)
args : (Tensor x, Tensor y, Tensor out_grad, int axis = -1) args : (Tensor input, Tensor x, Tensor y, Tensor out_grad, float alpha, float beta)
output : Tensor(input_grad), Tensor(x_grad), Tensor(y_grad)
infer_meta :
func : GeneralTernaryGradInferMeta
param : [input, x, y]
kernel :
func : addmm_grad
- backward_api : argsort_grad
forward : argsort (Tensor x, int axis, bool descending) -> Tensor(out), Tensor(indices)
args : (Tensor indices, Tensor x, Tensor out_grad, int axis, bool descending)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : argsort_grad
- backward_api : asin_grad
forward : asin (Tensor x) -> Tensor(out)
args : (Tensor x, Tensor out_grad)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : asin_grad
- backward_api : asinh_grad
forward : asinh (Tensor x) -> Tensor(out)
args : (Tensor x, Tensor out_grad)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : asinh_grad
- backward_api : atan2_grad
forward : cross (Tensor x, Tensor y) -> Tensor(out)
args : (Tensor x, Tensor y, Tensor out_grad)
output : Tensor(x_grad), Tensor(y_grad) output : Tensor(x_grad), Tensor(y_grad)
infer_meta : infer_meta :
func : GeneralBinaryGradInferMeta func : GeneralBinaryGradInferMeta
param : [x, y] param : [x, y]
kernel : kernel :
func : subtract_grad func : atan2_grad
- backward_api : multiply_grad - backward_api : atan_grad
forward : multiply (Tensor x, Tensor y) -> Tensor(out) forward : atan (Tensor x) -> Tensor(out)
args : (Tensor x, Tensor y, Tensor out_grad, int axis = -1) args : (Tensor x, Tensor out_grad)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : atan_grad
- backward_api : atanh_grad
forward : atanh (Tensor x) -> Tensor(out)
args : (Tensor x, Tensor out_grad)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : atanh_grad
- backward_api : bce_loss_grad
forward : bce_loss (Tensor input, Tensor label) -> Tensor(out)
args : (Tensor input, Tensor label, Tensor out_grad)
output : Tensor(input_grad)
infer_meta :
func : UnchangedInferMeta
param : [input]
kernel :
func : bce_loss_grad
- backward_api : brelu_grad
forward : brelu (Tensor x, float t_min, float t_max) -> Tensor(out)
args : (Tensor x, Tensor out_grad, float t_min, float t_max)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : brelu_grad
- backward_api : cast_grad
forward : cast (Tensor x, DataType out_dtype) -> Tensor(out)
args : (Tensor x, Tensor out_grad)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : cast_grad
data_type : out_grad
- backward_api : cholesky_grad
forward : cholesky (Tensor x, bool upper) -> Tensor(out)
args : (Tensor out, Tensor out_grad, bool upper)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [out]
kernel :
func : cholesky_grad
- backward_api : cholesky_solve_grad
forward : cholesky (Tensor x, Tensor y, bool upper) -> Tensor(out)
args : (Tensor x, Tensor y, Tensor out, Tensor out_grad, bool upper)
output : Tensor(x_grad), Tensor(y_grad) output : Tensor(x_grad), Tensor(y_grad)
infer_meta : infer_meta :
func : GeneralBinaryGradInferMeta func : GeneralBinaryGradInferMeta
param : [x, y] param : [x, y]
kernel : kernel :
func : multiply_grad func : cholesky_solve_grad
- backward_api : cos_grad
forward : cos (Tensor x) -> Tensor(out)
args : (Tensor x, Tensor out_grad)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : cos_grad
- backward_api : cosh_grad
forward : cosh (Tensor x) -> Tensor(out)
args : (Tensor x, Tensor out_grad)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : cosh_grad
- backward_api : cross_grad
forward : cross (Tensor x, Tensor y, int axis = 9) -> Tensor(out)
args : (Tensor x, Tensor y, Tensor out_grad, int axis)
output : Tensor(x_grad), Tensor(y_grad)
infer_meta :
func : GeneralBinaryGradInferMeta
param : [x, y]
kernel :
func : cross_grad
- backward_api : diagonal_grad
forward : diagonal (Tensor x, int offset, int axis1, int axis2) -> Tensor(out)
args : (Tensor x, Tensor out_grad, int offset = 0, int axis1 = 0, int axis2 = 1)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : diagonal_grad
- backward_api : digamma_grad
forward : digamma (Tensor x) -> Tensor(out)
args : (Tensor x, Tensor out_grad)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : digamma_grad
- backward_api : dist_grad
forward : dist (Tensor x, Tensor y, float p) -> Tensor(out)
args : (Tensor x, Tensor y, Tensor out, Tensor out_grad, float p)
output : Tensor(x_grad), Tensor(y_grad)
infer_meta :
func : GeneralBinaryGradInferMeta
param : [x, y]
kernel :
func : dist_grad
- backward_api : divide_grad - backward_api : divide_grad
forward : divide (Tensor x, Tensor y) -> Tensor(out) forward : divide (Tensor x, Tensor y) -> Tensor(out)
...@@ -65,114 +410,260 @@ ...@@ -65,114 +410,260 @@
kernel : kernel :
func : divide_grad func : divide_grad
- backward_api : eigh_grad
forward : eigh (Tensor x, str uplo) -> Tensor(out_w), Tensor(out_v)
args : (Tensor out_w, Tensor out_v, Tensor out_w_grad, Tensor out_v_grad)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [out_v]
kernel :
func : eigh_grad
- backward_api : digamma_grad - backward_api : elu_grad
forward : digamma (Tensor x) -> Tensor(out) forward : elu (Tensor x, float alpha) -> Tensor(out)
args : (Tensor x, Tensor out, Tensor out_grad, float alpha)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : elu_grad
- backward_api : erf_grad
forward : erf (Tensor x) -> Tensor(out)
args : (Tensor x, Tensor out_grad)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : erf_grad
data_type : out_grad
- backward_api : erfinv_grad
forward : erf (Tensor x) -> Tensor(out)
args : (Tensor out, Tensor out_grad)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [out]
kernel :
func : erfinv_grad
- backward_api : gather_nd_grad
forward : gather_nd (Tensor x, Tensor index) -> Tensor(out)
args : (Tensor x, Tensor index, Tensor out_grad)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : gather_nd_grad
# # forward backward type not match
# - backward_api : top_k_grad
# forward : top_k (Tensor x, Scalar k, int axis = -1, bool largest = true, bool sorted = true) -> Tensor(out), Tensor(indices)
# args : (Tensor x, Tensor indices, Tensor out_grad, Scalar k = -1, int axis = -1, bool largest = true, bool sorted = true)
# output : Tensor(x_grad)
# infer_meta :
# func : UnchangedInferMeta
# param : [x]
# kernel :
# func : top_k_grad
- backward_api : hard_shrink_grad
forward : hard_shrink (Tensor x, float threshold) -> Tensor(out)
args : (Tensor x, Tensor out_grad, float threshold)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : hard_shrink_grad
- backward_api : hard_sigmoid_grad
forward : hard_sigmoid (Tensor x, float slope, float offset) -> Tensor(out)
args : (Tensor out, Tensor out_grad, float slope, float offset)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [out]
kernel :
func : hard_sigmoid_grad
- backward_api : index_sample_grad
forward : index_sample (Tensor x, Tensor index) -> Tensor(out)
args : (Tensor x, Tensor index, Tensor out_grad)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : index_sample_grad
data_type : out_grad
- backward_api : label_smooth_grad
forward : label_smooth (Tensor label, Tensor prior_dist, float epsilon) -> Tensor(out)
args : (Tensor out_grad, float epsilon)
output : Tensor(label_grad)
infer_meta :
func : UnchangedInferMeta
param : [out_grad]
kernel :
func : label_smooth_grad
optional : prior_dist
- backward_api : leaky_relu_grad
forward : leaky_relu (Tensor x, float alpha) -> Tensor(out)
args : (Tensor x, Tensor out_grad, float alpha)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : leaky_relu_grad
- backward_api : lerp_grad
forward : transpose (Tensor x, Tensor y, Tensor weight) -> Tensor(out)
args : (Tensor x, Tensor y, Tensor weight, Tensor out, Tensor out_grad)
output : Tensor(x_grad), Tensor(y_grad)
infer_meta :
func : GeneralBinaryGradInferMeta
param : [x, y]
kernel :
func : lerp_grad
- backward_api : log_loss_grad
forward : log_loss (Tensor input, Tensor label, float epsilon) -> Tensor(out)
args : (Tensor input, Tensor label, Tensor out_grad, float epsilon)
output : Tensor(input_grad)
infer_meta :
func : UnchangedInferMeta
param : [input]
kernel :
func : log_loss_grad
- backward_api : logsigmoid_grad
forward : logsigmoid (Tensor x) -> Tensor(out)
args : (Tensor x, Tensor out_grad) args : (Tensor x, Tensor out_grad)
output : Tensor(x_grad) output : Tensor(x_grad)
infer_meta : infer_meta :
func : UnchangedInferMeta func : UnchangedInferMeta
param : [x] param : [x]
kernel :
func : logsigmoid_grad
- backward_api : masked_select_grad
forward : masked_select (Tensor x, Tensor mask) -> Tensor(out)
args : (Tensor x, Tensor mask, Tensor out_grad)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : masked_select_grad
data_type : x
- backward_api : matmul_double_grad
forward : matmul_grad (Tensor x, Tensor y, Tensor out_grad, bool transpose_x, bool transpose_y) -> Tensor(dx), Tensor(dy)
args : (Tensor x, Tensor y, Tensor out_grad, Tensor dx_grad, Tensor dy_grad, bool transpose_x, bool transpose_y)
output : Tensor(d2x), Tensor(d2y), Tensor(dout_grad)
infer_meta :
func : GeneralTernaryGradInferMeta
param : [x, y, out_grad]
kernel :
func : matmul_double_grad
optional : dx_grad, dy_grad
- backward_api : matmul_grad
forward : matmul (Tensor x, Tensor y, bool transpose_x=false, bool transpose_y=false) -> Tensor(out)
args : (Tensor x, Tensor y, Tensor out_grad, bool transpose_x=false, bool transpose_y=false)
output : Tensor(x_grad), Tensor(y_grad)
infer_meta :
func : GeneralBinaryGradInferMeta
param : [x, y]
kernel :
func : matmul_grad
- backward_api : matrix_power_grad
forward : matrix_power (Tensor x, int n) -> Tensor(out)
args : (Tensor x, Tensor out, Tensor out_grad, int n)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : matrix_power_grad
- backward_api : multiply_grad
forward : multiply (Tensor x, Tensor y) -> Tensor(out)
args : (Tensor x, Tensor y, Tensor out_grad, int axis = -1)
output : Tensor(x_grad), Tensor(y_grad)
infer_meta :
func : GeneralBinaryGradInferMeta
param : [x, y]
kernel :
func : multiply_grad
- backward_api : mv_grad
forward : mv (Tensor x, Tensor vec) -> Tensor(out)
args : (Tensor x, Tensor vec, Tensor out_grad)
output : Tensor(x_grad), Tensor(vec_grad)
infer_meta :
func : GeneralBinaryGradInferMeta
param : [x, vec]
kernel : kernel :
func : digamma_grad func : mv_grad
- backward_api : abs_grad - backward_api : nll_loss_grad
forward : abs (Tensor x) -> Tensor(out) forward : nll_loss (Tensor x, Tensor label, Tensor weight, int64_t ignore_index, str reduction) -> Tensor(out), Tensor(total_weight)
args : (Tensor x, Tensor out_grad) args : (Tensor x, Tensor label, Tensor weight, Tensor total_weight, Tensor out_grad, int64_t ignore_index, str reduction)
output : Tensor(x_grad) output : Tensor (x_grad)
infer_meta : infer_meta :
func : UnchangedInferMeta func : UnchangedInferMeta
param : [x] param : [x]
kernel : kernel :
func : abs_grad func : nll_loss_grad
data_type : out_grad
optional : weight
- backward_api : relu_grad - backward_api : psroi_pool_grad
forward : relu (Tensor x) -> Tensor(out) forward : psroi_pool (Tensor x, Tensor rois, Tensor rois_num, int pooled_weight, int pooled_width, int output_channels, float spatial_scale ) -> Tensor(out)
args : (Tensor x, Tensor out_grad) args : (Tensor x, Tensor rois, Tensor rois_num, Tensor out_grad, int pooled_weight, int pooled_width, int output_channels, float spatial_scale)
output : Tensor(x_grad) output : Tensor(x_grad)
infer_meta : infer_meta :
func : UnchangedInferMeta func : UnchangedInferMeta
param : [x] param : [x]
kernel : kernel :
func : relu_grad func : psroi_pool_grad
optional : rois_num
- backward_api : trunc_grad
forward : trunc (Tensor x) -> Tensor(out) # output is optional
args : (Tensor out_grad) - backward_api : put_along_axis_grad
output : Tensor(x_grad) forward : put_along_axis (Tensor x, Tensor index, Tensor value, int axis, str reduce) -> Tensor(out)
args : (Tensor x, Tensor index, Tensor out_grad, int axis, str reduce)
output : Tensor(x_grad), Tensor(value_grad)
infer_meta : infer_meta :
func : UnchangedInferMeta func : GeneralBinaryGradInferMeta
param : [out_grad] param : [x, index]
kernel : kernel :
func : trunc_grad func : put_along_axis_grad
# - backward_api : norm_grad
# forward : norm (Tensor x, int axis, float epsilon, bool is_test) -> Tensor(out), Tensor(norm)
# args : (Tensor x, Tensor norm, Tensor out_grad, int axis, float epsilon, bool is_test)
# output : Tensor(x_grad)
# infer_meta :
# func : UnchangedInferMeta
# param : [x]
# kernel :
# func : norm_grad
- backward_api : diagonal_grad - backward_api : relu_grad
forward : diagonal (Tensor x, int offset, int axis1, int axis2) -> Tensor(out) forward : relu (Tensor x) -> Tensor(out)
args : (Tensor x, Tensor out_grad, int offset = 0, int axis1 = 0, int axis2 = 1) args : (Tensor out, Tensor out_grad)
output : Tensor(x_grad) output : Tensor(x_grad)
infer_meta : infer_meta :
func : UnchangedInferMeta func : UnchangedInferMeta
param : [x] param : [out]
kernel : kernel :
func : diagonal_grad func : relu_grad
# - backward_api : split_grad
# forward : split (Tensor x, ScalarArray num_or_sections, Scalar axis) -> Tensor[](out)
# args : (Tensor[] out_grad, Scalar axis)
# output : Tensor(x_grad)
# invoke : concat( out_grad, axis)
# TODO(zhangyunfei) The config of double grad and triple grad will be supported in the future.
# - backward_api : matmul_triple_grad
# forward : matmul_double_grad (Tensor x, Tensor y, Tensor out_grad, Tensor dx_grad, Tensor dy_grad, bool transpose_x, bool transpose_y) -> Tensor(d2x), Tensor(d2y), Tensor(dout_grad)
# args : (Tensor x, Tensor y, Tensor out_grad, Tensor dx_grad, Tensor dy_grad, Tensor d2x_grad, Tensor d2y_grad, Tensor dout_grad_grad, bool transpose_x, bool transpose_y)
# output : Tensor(d3x), Tensor(d3y), Tensor(d2out_grad), Tensor(ddx_grad), Tensor(ddy_grad)
# infer_meta :
# func : MatmulTripleGradInferMeta
# kernel :
# func : matmul_triple_grad
# - backward_api : gumbel_softmax_grad
# forward : gumbel_softmax (Tensor x, float temperature, bool hard, int axis) -> Tensor(out)
# args : (Tensor out, Tensor out_grad, int axis)
# output : Tensor(x_grad)
# infer_meta :
# func : GumbelSoftmaxGradInferMeta
# param : [out, out_grad, axis]
# kernel :
# func : gumbel_softmax_grad
- backward_api : transpose_grad - backward_api : scale_grad
forward : transpose (Tensor x, int[] axis) -> Tensor(out) forward : scale (Tensor x, Scalar scale, float bias, bool bias_after_scale) -> Tensor(out)
args : (Tensor out_grad, int[] axis) args : (Tensor out_grad, Scalar scale, float bias=0.0, bool bias_after_scale=true)
output : Tensor(x_grad) output : Tensor(x_grad)
infer_meta : invoke : scale(out_grad, scale, bias, bias_after_scale)
func : TransposeGradInferMeta
param : [out_grad, axis]
kernel :
func : transpose_grad
# - backward_api : lerp_grad
# forward : transpose (Tensor x, Tensor y, Tensor weight) -> Tensor(out)
# args : (Tensor x, Tensor y, Tensor weight, Tensor out, Tensor out_grad)
# output : Tensor(x_grad), Tensor(y_grad)
# infer_meta :
# func : GeneralBinaryGradInferMeta
# param : [x, y]
# kernel :
# func : lerp_grad
- backward_api : scatter_grad - backward_api : scatter_grad
forward : scatter (Tensor x, Tensor index, Tensor updates, bool overwrite) -> Tensor(out) forward : scatter (Tensor x, Tensor index, Tensor updates, bool overwrite) -> Tensor(out)
...@@ -194,139 +685,219 @@ ...@@ -194,139 +685,219 @@
kernel : kernel :
func : scatter_nd_grad func : scatter_nd_grad
- backward_api : addmm_grad - backward_api : segment_pool_grad
forward : scatter (Tensor input, Tensor x, Tensor y, float alpha, float beta) -> Tensor(out) forward : segment_pool (Tensor x, Tensor segment_ids, str pooltype) -> Tensor(out), Tensor(summed_ids)
args : (Tensor input, Tensor x, Tensor y, Tensor out_grad, float alpha, float beta) args : (Tensor x, Tensor segment_ids, Tensor out, Tensor summed_ids, Tensor out_grad, str pooltype)
output : Tensor(input_grad), Tensor(x_grad), Tensor(y_grad) output : Tensor(x_grad)
infer_meta : infer_meta :
func : GeneralTernaryGradInferMeta func : UnchangedInferMeta
param : [input, x, y] param : [x]
kernel : kernel :
func : addmm_grad func : segment_pool_grad
- backward_api : where_grad - backward_api : selu_grad
forward : where (Tensor condition, Tensor x, Tensor y) -> Tensor(out) forward : selu (Tensor x, float scale, float alpha) -> Tensor(out)
args : (Tensor condition, Tensor x, Tensor y, Tensor out_grad) args : (Tensor out, Tensor out_grad, float scale, float alpha)
output : Tensor(x_grad), Tensor(y_grad) output : Tensor(x_grad)
infer_meta : infer_meta :
func : GeneralBinaryGradInferMeta func : UnchangedInferMeta
param : [x, y] param : [out]
kernel : kernel :
func : where_grad func : selu_grad
# - backward_api : huber_loss_grad - backward_api : sigmoid_cross_entropy_with_logits_grad
# forward : huber_loss (Tensor input, Tensor label, float delta) -> Tensor(out), Tensor(residual) forward : sigmoid_cross_entropy_with_logits (Tensor x, Tensor label, bool normalize, int ignore_index) -> Tensor(out)
# args : (Tensor residual, Tensor out_grad, float delta) args : (Tensor x, Tensor label, Tensor out_grad, bool normalize, int ignore_index)
# output : Tensor(input_grad), Tensor(label_grad) output : Tensor(x_grad)
# infer_meta : infer_meta :
# func : GeneralBinaryGradInferMeta func : UnchangedInferMeta
# param : [x, y] param : [x]
# kernel : kernel :
# func : where_grad func : sigmoid_cross_entropy_with_logits_grad
# - backward_api : triangular_solve_grad - backward_api : sigmoid_grad
# forward : triangular_solve (Tensor x, Tensor y, bool upper, bool tranpose, bool unitriangular) -> Tensor(out) forward : sigmoid (Tensor x) -> Tensor(out)
# args : (Tensor x, Tensor y, Tensor out, Tensor out_grad, bool upper, bool tranpose, bool unitriangular) args : (Tensor out, Tensor out_grad)
# output : Tensor(x_grad), Tensor(y_grad) output : Tensor(x_grad)
# infer_meta : infer_meta :
# func : GeneralBinaryGradInferMeta func : UnchangedInferMeta
# param : [x, y] param : [out]
# kernel : kernel :
# func : triangular_solve_grad func : sigmoid_grad
- backward_api : index_sample_grad - backward_api : silu_grad
forward : index_sample (Tensor x, Tensor index) -> Tensor(out) forward : silu (Tensor x) -> Tensor(out)
args : (Tensor x, Tensor index, Tensor out_grad) args : (Tensor x, Tensor out_grad)
output : Tensor(x_grad) output : Tensor(x_grad)
infer_meta : infer_meta :
func : UnchangedInferMeta func : UnchangedInferMeta
param : [x] param : [x]
kernel : kernel :
func : index_sample_grad func : silu_grad
- backward_api : cross_grad - backward_api : sin_grad
forward : cross (Tensor x, Tensor y, int axis = 9) -> Tensor(out) forward : sin (Tensor x) -> Tensor(out)
args : (Tensor x, Tensor y, Tensor out_grad, int axis) args : (Tensor x, Tensor out_grad)
output : Tensor(x_grad), Tensor(y_grad) output : Tensor(x_grad)
infer_meta : infer_meta :
func : GeneralBinaryGradInferMeta func : UnchangedInferMeta
param : [x, y] param : [x]
kernel : kernel :
func : cross_grad func : sin_grad
- backward_api : atan2_grad - backward_api : sinh_grad
forward : cross (Tensor x, Tensor y) -> Tensor(out) forward : sinh (Tensor x) -> Tensor(out)
args : (Tensor x, Tensor y, Tensor out_grad) args : (Tensor x, Tensor out_grad)
output : Tensor(x_grad), Tensor(y_grad) output : Tensor(x_grad)
infer_meta : infer_meta :
func : GeneralBinaryGradInferMeta func : UnchangedInferMeta
param : [x, y] param : [x]
kernel : kernel :
func : atan2_grad func : sinh_grad
- backward_api : bce_loss_grad - backward_api : soft_shrink_grad
forward : bce_loss (Tensor input, Tensor label) -> Tensor(out) forward : soft_shrink (Tensor x, float lambda) -> Tensor(out)
args : (Tensor input, Tensor label, Tensor out_grad) args : (Tensor x, Tensor out_grad, float lambda)
output : Tensor(input_grad) output : Tensor(x_grad)
infer_meta : infer_meta :
func : UnchangedInferMeta func : UnchangedInferMeta
param : [input] param : [x]
kernel : kernel :
func : bce_loss_grad func : soft_shrink_grad
- backward_api : softmax_grad
forward : softmax (Tensor x, int axis) -> Tensor(out)
args : (Tensor out, Tensor out_grad, int axis)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [out]
kernel :
func : softmax_grad
# - backward_api : dist_grad - backward_api : split_grad
# forward : dist (Tensor x, Tensor y, float p) -> Tensor(out) forward : split (Tensor x, ScalarArray num_or_sections, Scalar axis) -> Tensor[](out)
# args : (Tensor x, Tensor y, Tensor out, Tensor out_grad, float p) args : (Tensor[] out_grad, Scalar axis)
# output : Tensor(x_grad), Tensor(y_grad) output : Tensor(x_grad)
# infer_meta : invoke : concat( out_grad, axis)
# func : GeneralBinaryGradInferMeta # TODO(zhangyunfei) The config of double grad and triple grad will be supported in the future.
# param : [x, y]
# kernel :
# func : dist_grad
- backward_api : subtract_grad
forward : subtract (Tensor x, Tensor y) -> Tensor(out)
args : (Tensor x, Tensor y, Tensor out_grad, int axis = -1)
output : Tensor(x_grad), Tensor(y_grad)
infer_meta :
func : GeneralBinaryGradInferMeta
param : [x, y]
kernel :
func : subtract_grad
- backward_api : take_along_axis_grad
forward : take_along_axis (Tensor x, Tensor index, int axis) -> Tensor(out)
args : (Tensor x, Tensor index, Tensor out_grad, int axis)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : take_along_axis_grad
- backward_api : gather_nd_grad - backward_api : tan_grad
forward : gather_nd (Tensor x, Tensor index) -> Tensor(out) forward : tan (Tensor x) -> Tensor(out)
args : (Tensor x, Tensor index, Tensor out_grad) args : (Tensor x, Tensor out_grad)
output : Tensor(x_grad) output : Tensor(x_grad)
infer_meta : infer_meta :
func : UnchangedInferMeta func : UnchangedInferMeta
param : [x] param : [x]
kernel : kernel :
func : gather_nd_grad func : tan_grad
- backward_api : mv_grad - backward_api : tanh_grad
forward : mv (Tensor x, Tensor vec) -> Tensor(out) forward : tanh (Tensor x) -> Tensor(out)
args : (Tensor x, Tensor vec, Tensor out_grad) args : (Tensor out, Tensor out_grad)
output : Tensor(x_grad), Tensor(vec_grad) output : Tensor(x_grad)
infer_meta : infer_meta :
func : GeneralBinaryGradInferMeta func : UnchangedInferMeta
param : [x, vec] param : [out]
kernel : kernel :
func : mv_grad func : tanh_grad
- backward_api : tanh_shrink_grad
- backward_api : cast_grad forward : tanh_shrink (Tensor x) -> Tensor(out)
forward : cast (Tensor x, DataType out_dtype) -> Tensor(out)
args : (Tensor x, Tensor out_grad) args : (Tensor x, Tensor out_grad)
output : Tensor(x_grad) output : Tensor(x_grad)
infer_meta : infer_meta :
func : UnchangedInferMeta func : UnchangedInferMeta
param : [x] param : [x]
kernel : kernel :
func : cast_grad func : tanh_shrink_grad
data_type : out_grad
- backward_api : thresholded_relu_grad
forward : thresholded_relu (Tensor x, float threshold) -> Tensor(out)
args : (Tensor x, Tensor out_grad, float threshold)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : thresholded_relu_grad
# =================================== sep0 - backward_api : tile_grad
forward : tile (Tensor x, ScalarArray repeat_times) -> Tensor(out)
args : (Tensor x, Tensor out_grad, ScalarArray repeat_times)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : tile_grad
# =================================== sep1 - backward_api : trace_grad
forward : trace (Tensor x, int offset, int axis1, int axis2) -> Tensor(out)
args : (Tensor x, Tensor out_grad, int offset, int axis1, int axis2)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : trace_grad
- backward_api : transpose_grad
forward : transpose (Tensor x, int[] axis) -> Tensor(out)
args : (Tensor out_grad, int[] axis)
output : Tensor(x_grad)
infer_meta :
func : TransposeGradInferMeta
param : [out_grad, axis]
kernel :
func : transpose_grad
# =================================== sep2 - backward_api : trunc_grad
forward : trunc (Tensor x) -> Tensor(out)
args : (Tensor out_grad)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [out_grad]
kernel :
func : trunc_grad
- backward_api : unfold_grad
forward : unfold (Tensor x, int[] kernel_sizes, int[] strides, int[] paddings, int[] dilations) -> Tensor(out)
args : (Tensor x, Tensor out_grad, int[] kernel_sizes, int[] strides, int[] paddings, int[] dilations)
output : Tensor(x_grad)
infer_meta :
func : UnchangedInferMeta
param : [x]
kernel :
func : unfold_grad
# =================================== sep3 - backward_api : where_grad
forward : where (Tensor condition, Tensor x, Tensor y) -> Tensor(out)
args : (Tensor condition, Tensor x, Tensor y, Tensor out_grad)
output : Tensor(x_grad), Tensor(y_grad)
infer_meta :
func : GeneralBinaryGradInferMeta
param : [x, y]
kernel :
func : where_grad
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册