Skip to content

torch.tensor() does not respect device placement when initialized with numpy array #9455

@chrisyeh96

Description

@chrisyeh96

Issue description

torch.tensor() does not respect device placement when initialized with numpy array if a dtype is not given.

Code example

import numpy as np
import torch

x = np.arange(10, dtype=np.int64)
y = torch.tensor(x, device="cuda:0")
print(y.device)

z = torch.tensor(x, device="cuda:0", dtype=torch.int64)
print(z.device)

Output

cpu  # y.device - expected: 'cuda:0' but got 'cpu' instead
cuda:0  # z.device - correct

System Info

PyTorch version: 0.4.0
Is debug build: No
CUDA used to build PyTorch: 9.0.176

OS: Ubuntu 16.04.4 LTS
GCC version: (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
CMake version: version 3.5.1

Python version: 3.6
Is CUDA available: Yes
CUDA runtime version: 9.0.176
GPU models and configuration:
GPU 0: TITAN Xp
GPU 1: TITAN Xp
GPU 2: TITAN Xp
GPU 3: TITAN Xp

Nvidia driver version: 390.25
cuDNN version: Probably one of the following:
/usr/local/cuda-9.0/lib64/libcudnn.so.7.0.4
/usr/local/cuda-9.0/lib64/libcudnn_static.a
/usr/local/cuda-9.1/lib64/libcudnn.so.7.0.5
/usr/local/cuda-9.1/lib64/libcudnn_static.a

Versions of relevant libraries:
[pip] numpy (1.14.5)
[pip] torch (0.4.0)
[pip] torchvision (0.2.1)
[conda] Could not collect

Metadata

Metadata

Assignees

No one assigned

    Labels

    todoNot as important as medium or high priority tasks, but we will work on these.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions