Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
d74db35
fix code style
Manfredss Nov 13, 2025
80d3ad9
add doc and signature for bitwise_xor_
Manfredss Nov 14, 2025
c7ed42b
Merge branch 'develop' of https://github.com/PaddlePaddle/Paddle into…
Manfredss Nov 14, 2025
4ed899f
Sink bitwise_xor to cpp
Manfredss Nov 15, 2025
f6841d0
Merge branch 'develop' of https://github.com/PaddlePaddle/Paddle into…
Manfredss Nov 15, 2025
9f92fbd
fix numpy func name error (no attribute '_bitwise_xor') and add type …
Manfredss Nov 16, 2025
4f01bbc
Merge branch 'develop' of https://github.com/PaddlePaddle/Paddle into…
Manfredss Nov 16, 2025
6d385e6
fix static check and xpu test
Manfredss Nov 17, 2025
c9e9706
fix
Manfredss Nov 21, 2025
0f7b938
fix
Manfredss Nov 21, 2025
2b1b309
Merge branch 'develop' of https://github.com/PaddlePaddle/Paddle into…
Manfredss Nov 25, 2025
e25e4da
Merge branch 'develop' of https://github.com/PaddlePaddle/Paddle into…
Manfredss Nov 25, 2025
db3b1fb
fix: use cpp sink only
Manfredss Nov 26, 2025
d5240bf
Merge branch 'develop' of https://github.com/PaddlePaddle/Paddle into…
Manfredss Nov 26, 2025
d3bab02
Merge branch 'develop' of https://github.com/PaddlePaddle/Paddle into…
Manfredss Dec 3, 2025
38b750c
sunk bitwise_xor to cpp and add decorator for bitwise_xor_
Manfredss Dec 4, 2025
b7bf087
Merge branch 'develop' of https://github.com/PaddlePaddle/Paddle into…
Manfredss Dec 4, 2025
a434bce
fix
Manfredss Dec 5, 2025
ea3d45e
Merge branch 'develop' of https://github.com/PaddlePaddle/Paddle into…
Manfredss Dec 5, 2025
68d4666
Merge branch 'develop' of https://github.com/PaddlePaddle/Paddle into…
Manfredss Dec 12, 2025
a34a8de
add signatures, add test for broadcast logic, test compat cases for b…
Manfredss Dec 16, 2025
24bc5c1
test compat bitwise_xor_
Manfredss Dec 20, 2025
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
Prev Previous commit
Next Next commit
fix numpy func name error (no attribute '_bitwise_xor') and add type …
…stubs for bitwise_xor parameter alias support
  • Loading branch information
Manfredss committed Nov 16, 2025
commit 9f92fbd74a2bcb69950469a674769a4e6e5b915c
25 changes: 24 additions & 1 deletion python/paddle/tensor/logic.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

from __future__ import annotations

from typing import TYPE_CHECKING, Any
from typing import TYPE_CHECKING, Any, overload

from typing_extensions import TypeGuard

Expand Down Expand Up @@ -49,6 +49,20 @@
if TYPE_CHECKING:
from paddle import Tensor

@overload
def bitwise_xor(
x: Tensor, y: Tensor, out: Tensor | None = None, name: str | None = None
) -> Tensor: ...

def bitwise_xor(
*,
input: Tensor,
other: Tensor,
out: Tensor | None = None,
name: str | None = None,
) -> Tensor: ...


Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

下沉后,需要移除之前的python api,就没有这一层逻辑了。直接走c++

__all__ = []


Expand Down Expand Up @@ -1226,7 +1240,9 @@ def bitwise_xor(

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

下沉后原来的bitwise_xor需要删除掉,从_C_ops中导入

Args:
x (Tensor): Input Tensor of ``bitwise_xor`` . It is a N-D Tensor of bool, uint8, int8, int16, int32, int64.
Parameter alias: ``input``.
y (Tensor): Input Tensor of ``bitwise_xor`` . It is a N-D Tensor of bool, uint8, int8, int16, int32, int64.
Parameter alias: ``other``.
out (Tensor|None, optional): Result of ``bitwise_xor`` . It is a N-D Tensor with the same data type of input Tensor. Default: None.
name (str|None, optional): The default value is None. Normally there is no need for
user to set this property. For more information, please refer to :ref:`api_guide_Name`.
Expand All @@ -1240,10 +1256,17 @@ def bitwise_xor(
>>> import paddle
>>> x = paddle.to_tensor([-5, -1, 1])
>>> y = paddle.to_tensor([4, 2, -3])
>>> # Using original parameter name
>>> res = paddle.bitwise_xor(x, y)
>>> print(res)
Tensor(shape=[3], dtype=int64, place=Place(cpu), stop_gradient=True,
[-1, -3, -4])

>>> # Using Pytorch-compatible parameter name
>>> res = paddle.bitwise_xor(input=x, other=y)
>>> print(res)
Tensor(shape=[3], dtype=int64, place=Place(cpu), stop_gradient=True,
[-1, -3, -4])
"""
if in_dynamic_or_pir_mode() and out is None:
return _C_ops.bitwise_xor(x, y)
Expand Down
6 changes: 3 additions & 3 deletions test/legacy_test/test_zero_dim_binary_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ def test_dygraph_binary(self):
# 1) x is 0D, y is 0D
x_np = np.random.randint(-10, 10, [])
y_np = np.random.randint(-10, 10, [])
out_np = eval(f'np.{api.__name__}(x_np, y_np)')
out_np = eval(f'np.{api.__name__.lstrip("_")}(x_np, y_np)')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

zero_dim这里为啥需要改

Copy link
Contributor Author

@Manfredss Manfredss Dec 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这里的改动是因为测试会有报错

======================================================================
ERROR: test_dygraph_binary (__main__.TestBinaryAPI.test_dygraph_binary)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\Xue\ML\PaddleDebug\test\legacy_test\test_zero_dim_binary_api.py", line 170, in test_dygraph_binary
    out_np = eval(f'np.{api.__name__}(x_np, y_np)')
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<string>", line 1, in <module>
  File "C:\Users\tzy12\anaconda3\envs\paddle\Lib\site-packages\numpy\__init__.py", line 808, in __getattr__
    raise AttributeError(f"module {__name__!r} has no attribute {attr!r}")
AttributeError: module 'numpy' has no attribute '_bitwise_xor'. Did you mean: 'bitwise_xor'?

----------------------------------------------------------------------
Ran 6 tests in 0.508s


x = paddle.to_tensor(x_np)
y = paddle.to_tensor(y_np)
Expand All @@ -179,7 +179,7 @@ def test_dygraph_binary(self):
# 2) x is ND, y is 0D
x_np = np.random.randint(-10, 10, [3, 5])
y_np = np.random.randint(-10, 10, [])
out_np = eval(f'np.{api.__name__}(x_np, y_np)')
out_np = eval(f'np.{api.__name__.lstrip("_")}(x_np, y_np)')

x = paddle.to_tensor(x_np)
y = paddle.to_tensor(y_np)
Expand All @@ -191,7 +191,7 @@ def test_dygraph_binary(self):
# 3) x is 0D , y is ND
x_np = np.random.randint(-10, 10, [])
y_np = np.random.randint(-10, 10, [3, 5])
out_np = eval(f'np.{api.__name__}(x_np, y_np)')
out_np = eval(f'np.{api.__name__.lstrip("_")}(x_np, y_np)')

x = paddle.to_tensor(x_np)
y = paddle.to_tensor(y_np)
Expand Down