Pytorch中 .numpy() .item() .cpu() 区别

.numpy() 与 .item()

这两个可以归为一类,是将Tensor变量转换为非Tensor变量。
t.numpy()将Tensor变量转换为ndarray变量,其中t是一个Tensor变量,可以是标量,也可以是向量,转换后dtype与Tensor的dtype一致。

a = torch.tensor(1)
b = torch.tensor(1.)
c = torch.tensor([[1,2]])
d = torch.tensor([[1.,2.]])

aaa = a.numpy()
bbb = b.numpy()
ccc = c.numpy()
ddd = d.numpy()

.numpy()结果
t.item()将Tensor变量转换为python标量(int float等),其中t是一个Tensor变量,只能是标量,转换后dtype与Tensor的dtype一致。

aa=a.item()
bb=b.item()
cc=c.item() # 报错:ValueError: only one element tensors can be converted to Python scalars
dd=d.item() #报错:ValueError: only one element tensors can be converted to Python scalars

.item()结果

.cpu()

将数据的处理设备从其他设备(如.cuda()拿到cpu上),不会改变变量类型,转换后仍然是Tensor变量。
.cpu()后结果

  • 35
    点赞
  • 144
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值