提交 663f4e61 编写于 作者: B baiyf 提交者: qingqing01

Fix bilinear_op Python API (#11117)

* fix conflict

* code clean
上级 9503dbb1
...@@ -1003,10 +1003,10 @@ dice_loss ...@@ -1003,10 +1003,10 @@ dice_loss
.. autofunction:: paddle.fluid.layers.dice_loss .. autofunction:: paddle.fluid.layers.dice_loss
:noindex: :noindex:
upsampling_bilinear2d resize_bilinear
____ ____
.. autofunction:: paddle.fluid.layers.upsampling_bilinear2d .. autofunction:: paddle.fluid.layers.resize_bilinear
:noindex: :noindex:
gather gather
......
...@@ -81,7 +81,7 @@ __all__ = [ ...@@ -81,7 +81,7 @@ __all__ = [
'label_smooth', 'label_smooth',
'roi_pool', 'roi_pool',
'dice_loss', 'dice_loss',
'upsampling_bilinear2d', 'resize_bilinear',
'gather', 'gather',
'random_crop', 'random_crop',
] ]
...@@ -3929,9 +3929,9 @@ def dice_loss(input, label, epsilon=0.00001): ...@@ -3929,9 +3929,9 @@ def dice_loss(input, label, epsilon=0.00001):
return reduce_mean(dice_score) return reduce_mean(dice_score)
def upsampling_bilinear2d(input, out_shape=None, scale=None, name=None): def resize_bilinear(input, out_shape=None, scale=None, name=None):
""" """
The mathematical meaning of upsampling_bilinear2d is also called The mathematical meaning of resize bilinear layer is
Bilinear interpolation. Bilinear interpolation.
Bilinear interpolation is an extension of linear interpolation for Bilinear interpolation is an extension of linear interpolation for
interpolating functions of two variables (e.g. H-direction and interpolating functions of two variables (e.g. H-direction and
...@@ -3941,13 +3941,13 @@ def upsampling_bilinear2d(input, out_shape=None, scale=None, name=None): ...@@ -3941,13 +3941,13 @@ def upsampling_bilinear2d(input, out_shape=None, scale=None, name=None):
https://en.wikipedia.org/wiki/Bilinear_interpolation https://en.wikipedia.org/wiki/Bilinear_interpolation
Args: Args:
input (Variable): The input tensor of bilinear interpolation, input (Variable): The input tensor of resize bilinear layer,
This is a 4-D tensor of the shape This is a 4-D tensor of the shape
(num_batches, channels, in_h, in_w). (num_batches, channels, in_h, in_w).
out_shape(list|tuple|Variable|None): Output shape of bilinear interpolation out_shape(list|tuple|Variable|None): Output shape of resize bilinear
layer, the shape is (out_h, out_w). layer, the shape is (out_h, out_w).
Default: None Default: None
scale(int|None): The multiplier for the input height or width. scale(float|None): The multiplier for the input height or width.
At least one of out_shape or scale must be set. At least one of out_shape or scale must be set.
And out_shape has a higher priority than scale. And out_shape has a higher priority than scale.
Default: None Default: None
...@@ -3961,7 +3961,7 @@ def upsampling_bilinear2d(input, out_shape=None, scale=None, name=None): ...@@ -3961,7 +3961,7 @@ def upsampling_bilinear2d(input, out_shape=None, scale=None, name=None):
Examples: Examples:
.. code-block:: python .. code-block:: python
out = fluid.layers.bilinear_interp(input, out_shape=[12, 12]) out = fluid.layers.resize_bilinear(input, out_shape=[12, 12])
""" """
if out_shape is None and scale is None: if out_shape is None and scale is None:
raise ValueError("One of out_shape and scale must not be None") raise ValueError("One of out_shape and scale must not be None")
...@@ -3975,10 +3975,9 @@ def upsampling_bilinear2d(input, out_shape=None, scale=None, name=None): ...@@ -3975,10 +3975,9 @@ def upsampling_bilinear2d(input, out_shape=None, scale=None, name=None):
out_w = 0 out_w = 0
inputs = {"X": input} inputs = {"X": input}
if out_shape is not None: if out_shape is not None:
if not (_is_list_or_turple_(out_shape) and len(out_shape) == 2) and ( if not (_is_list_or_turple_(out_shape) and
out_shape is not Variable): len(out_shape) == 2) and not isinstance(out_shape, Variable):
raise ValueError('out_shape should be a list or tuple ', raise ValueError('out_shape should be a list or tuple or variable')
'with length 2, (out_h, out_w).')
if _is_list_or_turple_(out_shape): if _is_list_or_turple_(out_shape):
out_shape = list(map(int, out_shape)) out_shape = list(map(int, out_shape))
out_h = out_shape[0] out_h = out_shape[0]
......
...@@ -369,13 +369,13 @@ class TestBook(unittest.TestCase): ...@@ -369,13 +369,13 @@ class TestBook(unittest.TestCase):
self.assertIsNotNone(output) self.assertIsNotNone(output)
print(str(program)) print(str(program))
def test_upsampling_bilinear2d(self): def test_resize_bilinear(self):
program = Program() program = Program()
with program_guard(program): with program_guard(program):
x = layers.data(name='x', shape=[3, 9, 6], dtype="float32") x = layers.data(name='x', shape=[3, 9, 6], dtype="float32")
output = layers.upsampling_bilinear2d(x, out_shape=[12, 12]) output = layers.resize_bilinear(x, out_shape=[12, 12])
self.assertIsNotNone(output) self.assertIsNotNone(output)
output = layers.upsampling_bilinear2d(x, scale=3) output = layers.resize_bilinear(x, scale=3)
self.assertIsNotNone(output) self.assertIsNotNone(output)
print(str(program)) print(str(program))
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册