From b29d2b918e67a2f786ab4f4102ba8eb634ac2a87 Mon Sep 17 00:00:00 2001 From: zeroRains Date: Mon, 1 Sep 2025 22:15:23 +0800 Subject: [PATCH] fix the bug in constrcut Tensor with diference place --- python/paddle/__init__.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/python/paddle/__init__.py b/python/paddle/__init__.py index 6467a6880c43ce..8975401095e99c 100644 --- a/python/paddle/__init__.py +++ b/python/paddle/__init__.py @@ -128,18 +128,24 @@ def new_init(self, *args, **kwargs): device = framework._get_paddle_place(device) if len(args) == 0 and len(kwargs) == 0: # case 1, 2 original_init( - self, paddle.empty(shape=[0], dtype='float32'), place=device + self, + paddle.empty(shape=[0], dtype='float32', device=device), + place=device, ) return if 'data' in kwargs: # case 7,8 data = kwargs.pop('data') original_init( - self, paddle.tensor(data, dtype='float32'), place=device + self, + paddle.tensor(data, dtype='float32', device=device), + place=device, ) elif len(args) == 1 and isinstance(args[0], (list, tuple)): # case 5, 6 original_init( - self, paddle.tensor(args[0], dtype='float32'), place=device + self, + paddle.tensor(args[0], dtype='float32', device=device), + place=device, ) elif ( builtins.all(isinstance(arg, int) for arg in args) @@ -148,7 +154,7 @@ def new_init(self, *args, **kwargs): # case 3, 4 original_init( self, - paddle.empty(shape=list(args), dtype='float32'), + paddle.empty(shape=list(args), dtype='float32', device=device), place=device, ) else: