Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
0e164ca
fix index_elemwentwise_get_gard bug slice-check
zhanghonggeng Jul 22, 2025
1424be8
Merge branch 'pr_74147' into develop
HydrogenSulfate Jul 23, 2025
7513650
enhance Tensor creation methods
HydrogenSulfate Aug 4, 2025
3f014b8
Merge branch 'PaddlePaddle:develop' into creation_enh
HydrogenSulfate Aug 4, 2025
63920d8
add static test
HydrogenSulfate Aug 4, 2025
78499c8
fix UT
HydrogenSulfate Aug 5, 2025
e96dacd
Merge remote-tracking branch 'upstream/develop' into creation_enh
HydrogenSulfate Aug 5, 2025
22e2161
fix date
HydrogenSulfate Aug 5, 2025
8ebccce
refine code
HydrogenSulfate Aug 5, 2025
249d45e
fix
HydrogenSulfate Aug 5, 2025
d0bd188
Merge remote-tracking branch 'upstream/develop' into creation_enh
HydrogenSulfate Aug 5, 2025
3a758f5
fix UT
HydrogenSulfate Aug 5, 2025
da4843e
Merge remote-tracking branch 'upstream/develop' into creation_enh
HydrogenSulfate Aug 5, 2025
2c9f8db
fix
HydrogenSulfate Aug 5, 2025
4212a2e
fix BatchNormDoubleGradKernel
HydrogenSulfate Aug 5, 2025
ba7ff18
Merge remote-tracking branch 'upstream/develop' into creation_enh
HydrogenSulfate Aug 6, 2025
dbc7cae
restore code
HydrogenSulfate Aug 6, 2025
db536cd
fix
HydrogenSulfate Aug 6, 2025
6d20a17
fix
HydrogenSulfate Aug 6, 2025
2394bc9
fix
HydrogenSulfate Aug 6, 2025
b75d2b2
fix for review
HydrogenSulfate Aug 7, 2025
2dc4029
restore requires_grad setting
HydrogenSulfate Aug 7, 2025
18c65d0
Merge remote-tracking branch 'upstream/develop' into creation_enh
HydrogenSulfate Aug 7, 2025
f534c70
update 4 Tensor.new_xxx methods
HydrogenSulfate Aug 7, 2025
2e8b08f
Merge branch 'creation_enh' into add_33
HydrogenSulfate Aug 7, 2025
d0abf82
fix name
HydrogenSulfate Aug 8, 2025
16e5aa9
use full instead of fill_constant
HydrogenSulfate Aug 8, 2025
588dc00
refine device
HydrogenSulfate Aug 8, 2025
2139a68
use full instead of fill_constant
HydrogenSulfate Aug 8, 2025
8eeced4
fix
HydrogenSulfate Aug 8, 2025
7c15715
fix
HydrogenSulfate Aug 8, 2025
118ae29
Merge branch 'creation_enh' into add_33
HydrogenSulfate Aug 8, 2025
7f50ef2
fix string device
HydrogenSulfate Aug 8, 2025
edfa351
Merge branch 'creation_enh2' into add_33
HydrogenSulfate Aug 9, 2025
518b9b7
add pir mothods
HydrogenSulfate Aug 9, 2025
341db7b
Merge remote-tracking branch 'upstream/develop' into add_33
HydrogenSulfate Aug 11, 2025
51f4d65
update code
HydrogenSulfate Aug 11, 2025
bbc4505
add more UT
HydrogenSulfate Aug 11, 2025
a0d412c
Merge remote-tracking branch 'upstream/develop' into add_33
HydrogenSulfate Aug 12, 2025
6447ac9
fix
HydrogenSulfate Aug 12, 2025
a118f49
fix UT
HydrogenSulfate Aug 12, 2025
22d507e
update docstring
HydrogenSulfate Aug 12, 2025
f1da718
skip xpu test
HydrogenSulfate Aug 12, 2025
99528ca
Merge remote-tracking branch 'upstream/develop' into add_33
HydrogenSulfate Aug 12, 2025
62d2f41
Merge remote-tracking branch 'upstream/develop' into add_33
HydrogenSulfate Aug 13, 2025
d942c97
Merge remote-tracking branch 'upstream/develop' into add_33
HydrogenSulfate Aug 13, 2025
70fdff0
Merge branch 'PaddlePaddle:develop' into add_33
HydrogenSulfate Aug 13, 2025
70f7dff
Merge branch 'PaddlePaddle:develop' into add_33
HydrogenSulfate Aug 13, 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
92 changes: 91 additions & 1 deletion python/paddle/base/dygraph/math_op_patch.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,15 @@

import numpy as np

import paddle
from paddle import _C_ops

from .. import core
from ..framework import convert_np_dtype_to_dtype_

if TYPE_CHECKING:
from paddle import Tensor
from paddle._typing import DTypeLike
from paddle._typing import DTypeLike, PlaceLike, ShapeLike

_supported_int_dtype_ = [
core.VarDesc.VarType.UINT8,
Expand Down Expand Up @@ -100,6 +101,7 @@ def monkey_patch_math_tensor():
Similar to monkey_patch_variable.
The difference is, in dygraph mode, use auto-generated op functions for better performance.
"""
global paddle

def astype(self: Tensor, dtype: DTypeLike) -> Tensor:
"""
Expand Down Expand Up @@ -286,6 +288,90 @@ def _mT_(var: Tensor) -> Tensor:
out = _C_ops.transpose(var, perm)
return out

def _new_full_(
var: Tensor,
size: ShapeLike,
fill_value: bool | float | paddle.Tensor,
*,
dtype: DTypeLike | None = None,
device: PlaceLike | None = None,
requires_grad: bool = False,
) -> Tensor:
if dtype is None:
dtype = var.dtype
if device is None:
device = var.place

return paddle.full(
size,
fill_value,
dtype=dtype,
device=device,
requires_grad=requires_grad,
)

def _new_empty_(
var: Tensor,
size: ShapeLike,
*,
dtype: DTypeLike | None = None,
device: PlaceLike | None = None,
requires_grad: bool = False,
) -> Tensor:
if dtype is None:
dtype = var.dtype
if device is None:
device = var.place

return paddle.empty(
size,
dtype,
device=device,
requires_grad=requires_grad,
)

def _new_ones_(
var: Tensor,
size: ShapeLike,
*,
dtype: DTypeLike | None = None,
device: PlaceLike | None = None,
requires_grad: bool = False,
) -> Tensor:
if dtype is None:
dtype = var.dtype
if device is None:
device = var.place

return paddle.full(
size,
1,
dtype,
device=device,
requires_grad=requires_grad,
)

def _new_zeros_(
var: Tensor,
size: ShapeLike,
*,
dtype: DTypeLike | None = None,
device: PlaceLike | None = None,
requires_grad: bool = False,
) -> Tensor:
if dtype is None:
dtype = var.dtype
if device is None:
device = var.place

return paddle.full(
size,
0,
dtype,
device=device,
requires_grad=requires_grad,
)

@property
def requires_grad(self: Tensor) -> bool:
"""
Expand Down Expand Up @@ -339,6 +425,10 @@ def requires_grad(self: Tensor, value: bool) -> None:
('size', _size_),
('T', _T_),
('mT', _mT_),
('new_full', _new_full_),
('new_empty', _new_empty_),
('new_ones', _new_ones_),
('new_zeros', _new_zeros_),
("requires_grad", requires_grad),
# for logical compare
('__array_ufunc__', None),
Expand Down
Loading