.. _cn_api_paddle_tensor_minimum: minimum ------------------------------- .. py:function:: paddle.tensor.minimum(x, y, axis=-1, name=None) :alias_main: paddle.minimum :alias: paddle.minimum,paddle.tensor.minimum,paddle.tensor.math.minimum 该OP逐元素对比输入的两个多维Tensor,并且把各个位置更小的元素保存到返回结果中。 等式是: .. math:: Out = min(X, Y) - :math:`X` :多维Tensor。 - :math:`Y` :多维Tensor。 此运算算子有两种情况: 1. :math:`Y` 的 ``shape`` 与 :math:`X` 相同。 2. :math:`Y` 的 ``shape`` 是 :math:`X` 的连续子序列。 对于情况2: 1. 用 :math:`Y` 的 ``shape`` 匹配 :math:`X` 的 ``shape``,其中 ``axis`` 是 :math:`Y` 在 :math:`X` 上的起始维度的位置。 2. 如果 ``axis`` < 0(默认值为-1),则 :math:`axis = abs(X.ndim - Y.ndim) - axis - 1` 。 3. 考虑到子序列, :math:`Y` 的大小为1的尾部维度将被忽略,例如shape(Y)=(2,1)=>(2)。 例如: .. code-block:: text 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 具体的飞桨的广播(broadcasting)机制可以参考 `<> `_ 。 参数 ::::::::: - **x** (Tensor)- 多维Tensor。数据类型为 ``float32`` 、 ``float64`` 、 ``int32`` 或 ``int64`` 。 - **y** (Tensor)- 多维Tensor。数据类型为 ``float32`` 、 ``float64`` 、 ``int32`` 或 ``int64`` 。 - **axis** (int32, 可选)- Y的维度对应到X维度上时的索引。默认值为 -1。 - **name** (string, 可选)- 输出的名字。默认值为None。该参数供开发人员打印调试信息时使用,具体用法请参见 :ref:`api_guide_Name` 。 返回 ::::::::: Tensor,维度和数据类型与 ``x`` 相同的多维Tensor。 代码示例 :::::::::: .. code-block:: python import paddle import numpy as np paddle.disable_static() x_data = np.array([[1, 2], [3, 4]], dtype=np.float32) y_data = np.array([[5, 6], [7, 8]], dtype=np.float32) x = paddle.to_variable(x_data) y = paddle.to_variable(y_data) res = paddle.minimum(x, y) print(res.numpy()) #[[1. 2.] # [3. 4.]] x_data = np.array([[[1, 2, 3], [1, 2, 3]]], dtype=np.float32) y_data = np.array([1, 2], dtype=np.float32) x = paddle.to_variable(x_data) y = paddle.to_variable(y_data) res = paddle.minimum(x, y, axis=1) print(res.numpy()) #[[[1. 1. 1.] # [2. 2. 2.]]] x_data = np.array([2, 3, 5], dtype=np.float32) y_data = np.array([1, 4, np.nan], dtype=np.float32) x = paddle.to_variable(x_data) y = paddle.to_variable(y_data) res = paddle.minimum(x, y) print(res.numpy()) #[ 1. 3. nan] x_data = np.array([5, 3, np.inf], dtype=np.float32) y_data = np.array([1, 4, 5], dtype=np.float32) x = paddle.to_variable(x_data) y = paddle.to_variable(y_data) res = paddle.minimum(x, y) print(res.numpy()) #[1. 3. 5.]