atan2¶
对 x/y 进行逐元素的 arctangent 运算,通过符号确定象限
\[\begin{split}atan2(x,y)=\left\{\begin{matrix} & tan^{-1}(\frac{x}{y}) & y > 0 \\ & tan^{-1}(\frac{x}{y}) + \pi & x>=0, y < 0 \\ & tan^{-1}(\frac{x}{y}) - \pi & x<0, y < 0 \\ & +\frac{\pi}{2} & x>0, y = 0 \\ & -\frac{\pi}{2} & x<0, y = 0 \\ &\text{undefined} & x=0, y = 0 \end{matrix}\right.\end{split}\]
参数¶
x (Tensor) - 输入的 Tensor,数据类型为:int32、int64、float16、float32、float64。
y (Tensor) - 输入的 Tensor,数据类型为:int32、int64、float16、float32、float64。
name (str,可选) - 操作的名称(可选,默认值为 None)。更多信息请参见 Name。
返回¶
输出 Tensor,与 x
维度相同、数据类型相同(输入为 int 时,输出数据类型为 float64)。
代码示例¶
import paddle
x = paddle.to_tensor([-1, +1, +1, -1]).astype('float32')
#Tensor(shape=[4], dtype=float32, place=CUDAPlace(0), stop_gradient=True,
# [-1, 1, 1, -1])
y = paddle.to_tensor([-1, -1, +1, +1]).astype('float32')
#Tensor(shape=[4], dtype=float32, place=CUDAPlace(0), stop_gradient=True,
# [-1, -1, 1, 1])
out = paddle.atan2(x, y)
#Tensor(shape=[4], dtype=float32, place=CUDAPlace(0), stop_gradient=True,
# [-2.35619450, 2.35619450, 0.78539819, -0.78539819])