elementwise_min

paddle.fluid.layers. elementwise_min ( x, y, axis=- 1, act=None, name=None ) [源代码]

该OP逐元素对比输入的两个多维Tensor,并且把各个位置更小的元素保存到返回结果中。

等式是:

\[Out = min(X, Y)\]
  • \(X\):多维Tensor。

  • \(Y\):多维Tensor。

此运算算子有两种情况:
  1. \(Y\)shape\(X\) 相同。

  2. \(Y\)shape\(X\) 的连续子序列。

对于情况2:
  1. \(Y\)shape 匹配 \(X\)shape,其中 axis\(Y\)\(X\) 上的起始维度的位置。

  2. 如果 axis 为-1(默认值),则 \(axis = rank(X)-rank(Y)\)

  3. 考虑到子序列,\(Y\) 的大小为1的尾部维度将被忽略,例如shape(Y)=(2,1)=>(2)。

例如:

shape(X) = (2, 3, 4, 5), shape(Y) = (,)
shape(X) = (2, 3, 4, 5), shape(Y) = (5,)
shape(X) = (2, 3, 4, 5), shape(Y) = (4, 5), with axis=-1(default) or axis=2
shape(X) = (2, 3, 4, 5), shape(Y) = (3, 4), with axis=1
shape(X) = (2, 3, 4, 5), shape(Y) = (2), with axis=0
shape(X) = (2, 3, 4, 5), shape(Y) = (2, 1), with axis=0

参数

  • x (Variable)- 多维Tensor。数据类型为 float32float64int32int64

  • y (Variable)- 多维Tensor。数据类型为 float32float64int32int64

  • axis (int32,可选)- Y的维度对应到X维度上时的索引。默认值为 -1。

  • act (string,可选)- 激活函数名称,作用于输出上。默认值为None。详细请参考 激活函数,常见的激活函数有:relu tanh sigmoid 等。

  • name (str,可选) - 具体用法请参见 Name,一般无需设置,默认值为 None。

返回

维度和数据类型与 x 相同的多维Tensor。

返回类型

多维Tensor。

代码示例 1

import paddle.fluid as fluid
import numpy as np

def gen_data():
    return {
        "x": np.array([2, 3, 4]),
        "y": np.array([1, 5, 2])
    }

x = fluid.layers.data(name="x", shape=[3], dtype='float32')
y = fluid.layers.data(name="y", shape=[3], dtype='float32')
z = fluid.layers.elementwise_min(x, y)

place = fluid.CPUPlace()
exe = fluid.Executor(place)
z_value = exe.run(feed=gen_data(),
                    fetch_list=[z.name])

print(z_value) #[1, 3, 2]

代码示例 2

import paddle.fluid as fluid
import numpy as np

def gen_data():
    return {
        "x": np.ones((2, 3, 4, 5)).astype('float32'),
        "y": np.zeros((3, 4)).astype('float32')
    }

x = fluid.layers.data(name="x", shape=[2,3,4,5], dtype='float32')
y = fluid.layers.data(name="y", shape=[3,4], dtype='float32')
z = fluid.layers.elementwise_min(x, y, axis=1)

place = fluid.CPUPlace()
exe = fluid.Executor(place)

z_value = exe.run(feed=gen_data(),
                    fetch_list=[z.name])

print(z_value)#[[[[0., 0., 0., 0., 0.] .... [0., 0., 0., 0., 0.]]]]