栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pytorch常见数据格式之间的转换

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pytorch常见数据格式之间的转换

文章目录
  • 前言
  • 一、numpy转tensor
  • 二、tensor转numpy
  • 三、numpy,tensor转数字


前言

最近在做深度学习作业时,经常将数据转来转去,数据格式不正确就不能被放入模型中训练,所以做一个数据转换的总结。


一、numpy转tensor

直接torch.tensor() 注意:不共享内存,转换较慢

a = np.zeros((2,10))
b = torch.tensor(a,dtype= torch.int)
c = torch.tensor(a,dtype= torch.float)
d = torch.tensor(a,dtype= torch.long)

print(type(a))
print(type(b))
print(type(c))
print(type(d))




因为在训练时模型对数据有不同的要求,所以看要求转成不同的tensor格式。


torch.from_numpy(c)

共享内存,就是一个改变另一个也会改变。比较快。

a = np.zeros(3)
b= torch.from_numpy(a)
print(a,b)
b[0] = 1
print(a,b)
[0. 0. 0.] tensor([0., 0., 0.], dtype=torch.float64)
[1. 0. 0.] tensor([1., 0., 0.], dtype=torch.float64)

二、tensor转numpy
x_ = x.detach().numpy()

detach()是将requires_grad为false,得到的这个tensor永远不需要计算其梯度不具有grad
如果x在Gpu上

x_ = x。cpu().detach().numpy()

三、numpy,tensor转数字

.item()

print(type(a[1]))
print(type(b[1]))
print(type(a[1].item()))
print(type(b[1].item()))





注意·:该函数只能用在对象引用一个数组,不能用在包含一个数组的对象,如a.item()或b.item()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/960565.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号