cuda.tensor转为numpy, 以及numpy与tensor互相转换
cuda.tensor转为numpy, 以及numpy与tensor互相转换
·
1.cuda.tensor转为numpy
解决:{TypeError}can't convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first.
设定cuda_tensor是cuda上的数据,转为numpy类代码如下:
np_data = cuda_tensor.detach().cpu().numpy()

转换为numpy格式后:
2. tensor转为numpy
设定cpu_tensor是cpu上的数据, 且没有梯度,转为numpy类代码如下:
np_data = cpu_tensor.numpy()
3. numpy转为tensor
import torch
import numpy as np
np_data = np.ones((3, 3))
tensor_1 = torch.tensor(np_data)
tensor_2 = torch.from_numpy(np_data)
tensor_2 += 1
print(f'np_data: \n {np_data}')
print(f'tensor_1: \n {tensor_1}')
print(f'tensor_2: \n {tensor_2}')
print('两者id是否相同:', id(tensor_1) == id(tensor_2))
np_data:
[[2. 2. 2.]
[2. 2. 2.]
[2. 2. 2.]]
tensor_1:
tensor([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]], dtype=torch.float64)
tensor_2:
tensor([[2., 2., 2.],
[2., 2., 2.],
[2., 2., 2.]], dtype=torch.float64)
两者id是否相同: False
欢迎来到FlagOS开发社区,这里是一个汇聚了AI开发者、数据科学家、机器学习爱好者以及业界专家的活力平台。我们致力于成为业内领先的Triton技术交流与应用分享的殿堂,为推动人工智能技术的普及与深化应用贡献力量。
更多推荐
所有评论(0)