Skip to content

Commit 242e802

Browse files
authored
[API Compatibility] pow_/remainder_/bernoulli/combinations/trapezoid/frexp/lgamma/kron/kthvalue/poisson/mode/mv Edit By AI Agent (PaddlePaddle#78235)
* [API Compatibility] pow_/remainder_/bernoulli/combinations/trapezoid/frexp/lgamma/kron/kthvalue/poisson/mode/mv Edit By AI Agent * fix Code Style * fix comment * fix CI
1 parent 186e778 commit 242e802

17 files changed

Lines changed: 5599 additions & 4303 deletions

paddle/fluid/pybind/args_mapper.cc

Lines changed: 90 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,10 @@ void ArgMaxMinMapper(PyObject* args,
3434
bool* keepdims,
3535
bool* flatten,
3636
DataType* dtype) {
37-
// The python params are (x, axis,keepdim,dtype,name) which haven't flatten
37+
// The python params are (x, axis,keepdim,dtype) which haven't flatten
3838
// The _C_ops params are (x, axis,keepdim,flatten,dtype) which have flatten
39-
// but haven't name We should parse the python params and convert them to the
40-
// _C_ops params
4139
int nargs = args ? static_cast<int>(PyTuple_Size(args)) : 0;
4240
int remaining_kwargs = kwargs ? static_cast<int>(PyDict_Size(kwargs)) : 0;
43-
// python params count only consider the python params(x, axis, keepdim,
44-
// dtype), not include the name
4541
const int max_args = 4;
4642
CheckParamsCount(nargs, remaining_kwargs, max_args);
4743

@@ -368,5 +364,94 @@ void GeluMapper(PyObject* args,
368364
CheckRemainingParamsValidity(args, kwargs, remaining_kwargs, nargs);
369365
}
370366

367+
void KthvalueMapper(PyObject* args,
368+
PyObject* kwargs,
369+
Tensor** x_ptr_ptr,
370+
int64_t* k,
371+
int* axis,
372+
bool* keepdim) {
373+
// Python params: (x, k, axis, keepdim)
374+
// C++ _C_ops params: (x, k, axis, keepdim)
375+
// When axis is None, set axis = -1
376+
int nargs = args ? static_cast<int>(PyTuple_Size(args)) : 0;
377+
int remaining_kwargs = kwargs ? static_cast<int>(PyDict_Size(kwargs)) : 0;
378+
const int max_args = 4; // x, k, axis, keepdim
379+
CheckParamsCount(nargs, remaining_kwargs, max_args);
380+
381+
// Get Tensor x (support aliases: x, input)
382+
auto& x = GetTensorFromArgsOrKWArgs("kthvalue",
383+
"x",
384+
args,
385+
0,
386+
kwargs,
387+
{"x", "input"},
388+
nargs,
389+
&remaining_kwargs,
390+
false);
391+
*x_ptr_ptr = &x;
392+
393+
// Parse k parameter
394+
PyObject* k_obj =
395+
GetItemFromArgsOrKWArgs(args, 1, kwargs, {"k"}, nargs, &remaining_kwargs);
396+
*k = CastPyArg2Long(k_obj, "kthvalue", 1);
397+
398+
// Parse axis parameter (support aliases: axis, dim)
399+
// When axis is None, set axis = -1
400+
PyObject* axis_obj = GetItemFromArgsOrKWArgs(
401+
args, 2, kwargs, {"axis", "dim"}, nargs, &remaining_kwargs);
402+
if (axis_obj == Py_None || axis_obj == nullptr) {
403+
*axis = -1;
404+
} else {
405+
*axis = CastPyArg2Int(axis_obj, "kthvalue", 2);
406+
}
407+
408+
// Parse keepdim parameter (support aliases: keepdim, keepdims)
409+
PyObject* keepdim_obj = GetItemFromArgsOrKWArgs(
410+
args, 3, kwargs, {"keepdim", "keepdims"}, nargs, &remaining_kwargs);
411+
*keepdim = CastPyArg2Boolean(keepdim_obj, "kthvalue", 3, false);
412+
413+
// Check Remaining Params validity
414+
CheckRemainingParamsValidity(args, kwargs, remaining_kwargs, nargs);
415+
}
416+
417+
void KthvalueMapper(PyObject* args,
418+
PyObject* kwargs,
419+
pir::Value* x,
420+
int64_t* k,
421+
int* axis,
422+
bool* keepdim) {
423+
// Static graph version
424+
int nargs = args ? static_cast<int>(PyTuple_Size(args)) : 0;
425+
int remaining_kwargs = kwargs ? static_cast<int>(PyDict_Size(kwargs)) : 0;
426+
const int max_args = 4;
427+
CheckParamsCount(nargs, remaining_kwargs, max_args);
428+
429+
// Get Value x (support aliases: x, input)
430+
PyObject* x_obj = GetItemFromArgsOrKWArgs(
431+
args, 0, kwargs, {"x", "input"}, nargs, &remaining_kwargs);
432+
*x = CastPyArg2Value(x_obj, "kthvalue", 0, false);
433+
434+
// Parse k parameter
435+
PyObject* k_obj =
436+
GetItemFromArgsOrKWArgs(args, 1, kwargs, {"k"}, nargs, &remaining_kwargs);
437+
*k = CastPyArg2Long(k_obj, "kthvalue", 1);
438+
439+
// Parse axis parameter (support aliases: axis, dim)
440+
PyObject* axis_obj = GetItemFromArgsOrKWArgs(
441+
args, 2, kwargs, {"axis", "dim"}, nargs, &remaining_kwargs);
442+
if (axis_obj == Py_None || axis_obj == nullptr) {
443+
*axis = -1;
444+
} else {
445+
*axis = CastPyArg2Int(axis_obj, "kthvalue", 2);
446+
}
447+
448+
// Parse keepdim parameter
449+
PyObject* keepdim_obj = GetItemFromArgsOrKWArgs(
450+
args, 3, kwargs, {"keepdim", "keepdims"}, nargs, &remaining_kwargs);
451+
*keepdim = CastPyArg2Boolean(keepdim_obj, "kthvalue", 3, false);
452+
453+
CheckRemainingParamsValidity(args, kwargs, remaining_kwargs, nargs);
454+
}
455+
371456
} // namespace pybind
372457
} // namespace paddle

paddle/fluid/pybind/args_mapper.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,20 @@ void ArgSumMapper(PyObject* args,
5959
pir::Value* axis,
6060
DataType* dtype,
6161
bool* keepdim);
62+
63+
void KthvalueMapper(PyObject* args,
64+
PyObject* kwargs,
65+
Tensor** x_ptr_ptr,
66+
int64_t* k,
67+
int* axis,
68+
bool* keepdim);
69+
void KthvalueMapper(PyObject* args,
70+
PyObject* kwargs,
71+
pir::Value* x,
72+
int64_t* k,
73+
int* axis,
74+
bool* keepdim);
75+
6276
} // namespace pybind
6377

6478
} // namespace paddle

paddle/phi/ops/yaml/python_api_info.yaml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,13 @@
144144
x : [input]
145145
axis : [dims]
146146

147+
- op : floor_divide_
148+
name : [paddle.floor_divide_, paddle.Tensor.floor_divide_]
149+
args_alias :
150+
use_default_mapping : True
151+
pre_process :
152+
func : InplaceShapePreProcess(x, y)
153+
147154
- op : renorm
148155
name : [paddle.renorm, paddle.Tensor.renorm]
149156
args_alias :
@@ -392,6 +399,16 @@
392399

393400
- op : lgamma
394401
name : [paddle.lgamma, paddle.Tensor.lgamma]
402+
args_alias:
403+
use_default_mapping : True
404+
405+
- op : kthvalue
406+
name : [paddle.kthvalue, paddle.Tensor.kthvalue]
407+
args_mapper :
408+
func : KthvalueMapper
409+
410+
- op : kron
411+
name : [paddle.kron, paddle.Tensor.kron]
395412
args_alias :
396413
use_default_mapping : True
397414

@@ -442,6 +459,11 @@
442459
args_alias :
443460
use_default_mapping : True
444461

462+
- op : mv
463+
name : [paddle.mv, paddle.Tensor.mv]
464+
args_alias :
465+
use_default_mapping : True
466+
445467
- op : matmul
446468
name : [paddle.matmul, paddle.Tensor.matmul]
447469
args_alias :
@@ -467,6 +489,12 @@
467489
args_alias :
468490
use_default_mapping : True
469491

492+
- op : pow_
493+
name : [paddle.pow_, paddle.Tensor.pow_]
494+
args_alias :
495+
x : [input]
496+
y : [exponent]
497+
470498
- op : nextafter
471499
name : [paddle.nextafter, paddle.Tensor.nextafter]
472500
args_alias :
@@ -489,6 +517,13 @@
489517
args_alias :
490518
use_default_mapping : True
491519

520+
- op : remainder_
521+
name : [paddle.remainder_, paddle.Tensor.remainder_, paddle.mod_, paddle.Tensor.mod_, paddle.floor_mod_, paddle.Tensor.floor_mod_]
522+
args_alias :
523+
use_default_mapping : True
524+
pre_process :
525+
func : InplaceShapePreProcess(x, y)
526+
492527
- op : roll
493528
name : [paddle.roll, paddle.Tensor.roll]
494529
args_alias:

python/paddle/__init__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -625,7 +625,6 @@ def new_init(self, *args, **kwargs):
625625
floor_divide,
626626
floor_divide_,
627627
floor_mod,
628-
floor_mod_,
629628
fmax,
630629
fmin,
631630
frac,
@@ -684,7 +683,6 @@ def new_init(self, *args, **kwargs):
684683
minimum,
685684
mm,
686685
mod,
687-
mod_,
688686
mul,
689687
multigammaln,
690688
multigammaln_,

0 commit comments

Comments
 (0)