Skip to content

Commit 2cd558f

Browse files
authored
Merge pull request #13561 from sneaxiy/fix_api_kwargs
[Urgent] Add out params to some apis
2 parents e426cda + 48d82bd commit 2cd558f

File tree

2 files changed

+80
-27
lines changed

2 files changed

+80
-27
lines changed

paddle/fluid/API.spec

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -162,14 +162,14 @@ paddle.fluid.layers.unstack ArgSpec(args=['x', 'axis', 'num'], varargs=None, key
162162
paddle.fluid.layers.sequence_enumerate ArgSpec(args=['input', 'win_size', 'pad_value', 'name'], varargs=None, keywords=None, defaults=(0, None))
163163
paddle.fluid.layers.expand ArgSpec(args=['x', 'expand_times', 'name'], varargs=None, keywords=None, defaults=(None,))
164164
paddle.fluid.layers.sequence_concat ArgSpec(args=['input', 'name'], varargs=None, keywords=None, defaults=(None,))
165-
paddle.fluid.layers.scale ArgSpec(args=['x', 'scale', 'bias', 'bias_after_scale', 'act', 'name'], varargs=None, keywords=None, defaults=(1.0, 0.0, True, None, None))
166-
paddle.fluid.layers.elementwise_add ArgSpec(args=['x', 'y', 'axis', 'use_mkldnn', 'act', 'name'], varargs=None, keywords=None, defaults=(-1, False, None, None))
167-
paddle.fluid.layers.elementwise_div ArgSpec(args=['x', 'y', 'axis', 'use_mkldnn', 'act', 'name'], varargs=None, keywords=None, defaults=(-1, False, None, None))
168-
paddle.fluid.layers.elementwise_sub ArgSpec(args=['x', 'y', 'axis', 'use_mkldnn', 'act', 'name'], varargs=None, keywords=None, defaults=(-1, False, None, None))
169-
paddle.fluid.layers.elementwise_mul ArgSpec(args=['x', 'y', 'axis', 'use_mkldnn', 'act', 'name'], varargs=None, keywords=None, defaults=(-1, False, None, None))
170-
paddle.fluid.layers.elementwise_max ArgSpec(args=['x', 'y', 'axis', 'use_mkldnn', 'act', 'name'], varargs=None, keywords=None, defaults=(-1, False, None, None))
171-
paddle.fluid.layers.elementwise_min ArgSpec(args=['x', 'y', 'axis', 'use_mkldnn', 'act', 'name'], varargs=None, keywords=None, defaults=(-1, False, None, None))
172-
paddle.fluid.layers.elementwise_pow ArgSpec(args=['x', 'y', 'axis', 'use_mkldnn', 'act', 'name'], varargs=None, keywords=None, defaults=(-1, False, None, None))
165+
paddle.fluid.layers.scale ArgSpec(args=['x', 'scale', 'bias', 'bias_after_scale', 'out', 'act', 'name'], varargs=None, keywords=None, defaults=(1.0, 0.0, True, None, None, None))
166+
paddle.fluid.layers.elementwise_add ArgSpec(args=['x', 'y', 'out', 'axis', 'use_mkldnn', 'act', 'name'], varargs=None, keywords=None, defaults=(None, -1, False, None, None))
167+
paddle.fluid.layers.elementwise_div ArgSpec(args=['x', 'y', 'out', 'axis', 'use_mkldnn', 'act', 'name'], varargs=None, keywords=None, defaults=(None, -1, False, None, None))
168+
paddle.fluid.layers.elementwise_sub ArgSpec(args=['x', 'y', 'out', 'axis', 'use_mkldnn', 'act', 'name'], varargs=None, keywords=None, defaults=(None, -1, False, None, None))
169+
paddle.fluid.layers.elementwise_mul ArgSpec(args=['x', 'y', 'out', 'axis', 'use_mkldnn', 'act', 'name'], varargs=None, keywords=None, defaults=(None, -1, False, None, None))
170+
paddle.fluid.layers.elementwise_max ArgSpec(args=['x', 'y', 'out', 'axis', 'use_mkldnn', 'act', 'name'], varargs=None, keywords=None, defaults=(None, -1, False, None, None))
171+
paddle.fluid.layers.elementwise_min ArgSpec(args=['x', 'y', 'out', 'axis', 'use_mkldnn', 'act', 'name'], varargs=None, keywords=None, defaults=(None, -1, False, None, None))
172+
paddle.fluid.layers.elementwise_pow ArgSpec(args=['x', 'y', 'out', 'axis', 'use_mkldnn', 'act', 'name'], varargs=None, keywords=None, defaults=(None, -1, False, None, None))
173173
paddle.fluid.layers.data ArgSpec(args=['name', 'shape', 'append_batch_size', 'dtype', 'lod_level', 'type', 'stop_gradient'], varargs=None, keywords=None, defaults=(True, 'float32', 0, VarType.LOD_TENSOR, True))
174174
paddle.fluid.layers.open_files ArgSpec(args=['filenames', 'shapes', 'lod_levels', 'dtypes', 'thread_num', 'buffer_size', 'pass_num', 'is_test'], varargs=None, keywords=None, defaults=(None, None, 1, None))
175175
paddle.fluid.layers.read_file ArgSpec(args=['reader'], varargs=None, keywords=None, defaults=None)

python/paddle/fluid/layers/nn.py

Lines changed: 72 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6471,12 +6471,14 @@ def _elementwise_op(helper):
64716471
assert y is not None, 'y cannot be None in {}'.format(op_type)
64726472
axis = helper.kwargs.get('axis', -1)
64736473
use_mkldnn = helper.kwargs.get('use_mkldnn', False)
6474-
name = helper.kwargs.get('name', None)
6475-
if name is None:
6476-
out = helper.create_tmp_variable(dtype=x.dtype)
6477-
else:
6478-
out = helper.create_variable(
6479-
name=name, dtype=x.dtype, persistable=False)
6474+
out = helper.kwargs.get('out', None)
6475+
if out is None:
6476+
name = helper.kwargs.get('name', None)
6477+
if name is None:
6478+
out = helper.create_tmp_variable(dtype=x.dtype)
6479+
else:
6480+
out = helper.create_variable(
6481+
name=name, dtype=x.dtype, persistable=False)
64806482

64816483
helper.append_op(
64826484
type=op_type,
@@ -6489,7 +6491,13 @@ def _elementwise_op(helper):
64896491

64906492

64916493
@templatedoc()
6492-
def scale(x, scale=1.0, bias=0.0, bias_after_scale=True, act=None, name=None):
6494+
def scale(x,
6495+
scale=1.0,
6496+
bias=0.0,
6497+
bias_after_scale=True,
6498+
out=None,
6499+
act=None,
6500+
name=None):
64936501
"""
64946502
${comment}
64956503
@@ -6498,6 +6506,7 @@ def scale(x, scale=1.0, bias=0.0, bias_after_scale=True, act=None, name=None):
64986506
scale(${scale_type}): ${scale_comment}
64996507
bias(${bias_type}): ${bias_comment}
65006508
bias_after_scale(${bias_after_scale_type}): ${bias_after_scale_comment}
6509+
out(Tensor): Output tensor.
65016510
act(basestring|None): Activation applied to the output.
65026511
name(basestring|None): Name of the output.
65036512
@@ -6506,11 +6515,12 @@ def scale(x, scale=1.0, bias=0.0, bias_after_scale=True, act=None, name=None):
65066515
"""
65076516

65086517
helper = LayerHelper('scale', **locals())
6509-
if name is None:
6510-
out = helper.create_tmp_variable(dtype=x.dtype)
6511-
else:
6512-
out = helper.create_variable(
6513-
name=name, dtype=x.dtype, persistable=False)
6518+
if out is None:
6519+
if name is None:
6520+
out = helper.create_tmp_variable(dtype=x.dtype)
6521+
else:
6522+
out = helper.create_variable(
6523+
name=name, dtype=x.dtype, persistable=False)
65146524

65156525
helper.append_op(
65166526
type='scale',
@@ -6524,31 +6534,73 @@ def scale(x, scale=1.0, bias=0.0, bias_after_scale=True, act=None, name=None):
65246534
return helper.append_activation(out)
65256535

65266536

6527-
def elementwise_add(x, y, axis=-1, use_mkldnn=False, act=None, name=None):
6537+
def elementwise_add(x,
6538+
y,
6539+
out=None,
6540+
axis=-1,
6541+
use_mkldnn=False,
6542+
act=None,
6543+
name=None):
65286544
return _elementwise_op(LayerHelper('elementwise_add', **locals()))
65296545

65306546

6531-
def elementwise_div(x, y, axis=-1, use_mkldnn=False, act=None, name=None):
6547+
def elementwise_div(x,
6548+
y,
6549+
out=None,
6550+
axis=-1,
6551+
use_mkldnn=False,
6552+
act=None,
6553+
name=None):
65326554
return _elementwise_op(LayerHelper('elementwise_div', **locals()))
65336555

65346556

6535-
def elementwise_sub(x, y, axis=-1, use_mkldnn=False, act=None, name=None):
6557+
def elementwise_sub(x,
6558+
y,
6559+
out=None,
6560+
axis=-1,
6561+
use_mkldnn=False,
6562+
act=None,
6563+
name=None):
65366564
return _elementwise_op(LayerHelper('elementwise_sub', **locals()))
65376565

65386566

6539-
def elementwise_mul(x, y, axis=-1, use_mkldnn=False, act=None, name=None):
6567+
def elementwise_mul(x,
6568+
y,
6569+
out=None,
6570+
axis=-1,
6571+
use_mkldnn=False,
6572+
act=None,
6573+
name=None):
65406574
return _elementwise_op(LayerHelper('elementwise_mul', **locals()))
65416575

65426576

6543-
def elementwise_max(x, y, axis=-1, use_mkldnn=False, act=None, name=None):
6577+
def elementwise_max(x,
6578+
y,
6579+
out=None,
6580+
axis=-1,
6581+
use_mkldnn=False,
6582+
act=None,
6583+
name=None):
65446584
return _elementwise_op(LayerHelper('elementwise_max', **locals()))
65456585

65466586

6547-
def elementwise_min(x, y, axis=-1, use_mkldnn=False, act=None, name=None):
6587+
def elementwise_min(x,
6588+
y,
6589+
out=None,
6590+
axis=-1,
6591+
use_mkldnn=False,
6592+
act=None,
6593+
name=None):
65486594
return _elementwise_op(LayerHelper('elementwise_min', **locals()))
65496595

65506596

6551-
def elementwise_pow(x, y, axis=-1, use_mkldnn=False, act=None, name=None):
6597+
def elementwise_pow(x,
6598+
y,
6599+
out=None,
6600+
axis=-1,
6601+
use_mkldnn=False,
6602+
act=None,
6603+
name=None):
65526604
return _elementwise_op(LayerHelper('elementwise_pow', **locals()))
65536605

65546606

@@ -6560,6 +6612,7 @@ def elementwise_pow(x, y, axis=-1, use_mkldnn=False, act=None, name=None):
65606612
func.__doc__ = _generate_doc_string_(
65616613
op_proto,
65626614
additional_args_lines=[
6615+
"out (Tensor): The output tensor of elementwise op.",
65636616
"act (basestring|None): Activation applied to the output.",
65646617
"name (basestring|None): Name of the output."
65656618
])

0 commit comments

Comments
 (0)