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
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

锦鲤AI幸运

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值