Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/api/paddle/Overview_cn.rst
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ tensor数学操作
" :ref:`paddle.diagonal <cn_api_tensor_diagonal>` ", "根据给定的轴 axis 返回输入 Tensor 的局部视图"
" :ref:`paddle.trunc <cn_api_tensor_trunc>` ", "对输入 Tensor 每个元素的小数部分进行截断"
" :ref:`paddle.log1p <cn_api_paddle_tensor_log1p>` ", "该OP计算Log1p(加一的自然对数)结果"
" :ref:`paddle.diff <cn_api_tensor_diff>` ", "沿着指定维度对输入Tensor计算n阶的前向差值"
" :ref:`paddle.rad2deg <cn_api_paddle_tensor_rad2deg>` ", "将元素从弧度的角度转换为度"
" :ref:`paddle.deg2rad <cn_api_paddle_tensor_deg2rad>` ", "将元素从度的角度转换为弧度"

Expand Down
2 changes: 2 additions & 0 deletions docs/api/paddle/Tensor/Overview_en.rst
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ Methods
dist
divide
dot
diff
eigvals
equal
equal_all
Expand Down Expand Up @@ -144,6 +145,7 @@ Methods
index_sample
index_select
inverse
isclose
is_empty
is_tensor
isfinite
Expand Down
18 changes: 18 additions & 0 deletions docs/api/paddle/Tensor_cn.rst
Original file line number Diff line number Diff line change
Expand Up @@ -280,6 +280,15 @@ allclose(y, rtol=1e-05, atol=1e-08, equal_nan=False, name=None)

请参考 :ref:`cn_api_tensor_allclose`

isclose(x, y, rtol=1e-05, atol=1e-08, equal_nan=False, name=None)
:::::::::

返回:计算后的Tensor

返回类型:Tensor

请参考 :ref:`cn_api_tensor_isclose`

any(axis=None, keepdim=False, name=None)
:::::::::

Expand Down Expand Up @@ -768,6 +777,15 @@ dot(y, name=None)

请参考 :ref:`cn_api_paddle_tensor_linalg_dot`

diff(x, n=1, axis=-1, prepend=None, append=None, name=None)
:::::::::

返回:计算后的Tensor

返回类型:Tensor

请参考 :ref:`cn_api_tensor_diff`

equal(y, name=None)
:::::::::

Expand Down
54 changes: 54 additions & 0 deletions docs/api/paddle/diff_cn.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
.. _cn_api_tensor_diff:

diff
-------------------------------

.. py:function:: paddle.diff(x, n=1, axis=-1, prepend=None, append=None, name=None)

沿着指定轴计算输入Tensor的n阶前向差值,一阶的前向差值计算公式如下:

.. math::
out[i] = x[i+1] - x[i]

.. note::
高阶的前向差值可以通过递归的方式进行计算,目前只支持 n=1。

参数:
:::::::::

- **x** (Tensor) - 待计算前向差值的输入 `Tensor`。
- **n** (int, 可选) - 需要计算前向差值的次数,目前仅支持 `n=1`,默认值为1。
- **axis** (int, 可选) - 沿着哪一维度计算前向差值,默认值为-1,也即最后一个维度。
- **prepend** (Tensor, 可选) - 在计算前向差值之前,沿着指定维度axis附加到输入x的前面,它的维度需要和输入一致,并且除了axis维外,其他维度的形状也要和输入一致,默认值为None。
- **append** (Tensor, 可选) - 在计算前向差值之前,沿着指定维度axis附加到输入x的后面,它的维度需要和输入一致,并且除了axis维外,其他维度的形状也要和输入一致,默认值为None。
- **name** (str,可选)- 具体用法请参见 :ref:`api_guide_Name` ,一般无需设置,默认值为None。

返回
:::::::::
前向差值计算后的Tensor,数据类型和输入一致。

代码示例:
:::::::::

.. code-block:: python

import paddle
x = paddle.to_tensor([1, 4, 5, 2])
out = paddle.diff(x)
print(out)
# out:
# [3, 1, -3]
y = paddle.to_tensor([7, 9])
out = paddle.diff(x, append=y)
print(out)
# out:
# [3, 1, -3, 5, 2]
z = paddle.to_tensor([[1, 2, 3], [4, 5, 6]])
out = paddle.diff(z, axis=0)
print(out)
# out:
# [[3, 3, 3]]
out = paddle.diff(z, axis=1)
print(out)
# out:
# [[1, 1], [1, 1]]