numpy和torch数据类型如何转化


这篇文章主要介绍“numpy和torch数据类型如何转化”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“numpy和torch数据类型如何转化”文章能帮助大家解决问题。numpy使用astype转化数据类型,float默认转化为64位,可以使用np.float32指定为32位[1. 2. 3.]float64不要使用a.dtype指定数据类型,会使数据丢失[1.e-45 3.e-45 4.e-45]float32不要用float代替np.float,否则可能出现意想不到的错误不能从np.float64位转化np.float32,会报错np.float64与np.float32相乘,结果为np.float64在实际使用过程中,可以指定为np.float,也可以指定具体的位数,如np.float,不过直接指定np.float更方便。torch使用torch.float()转化数据类型,float默认转化为32位,torch中没有torch.float64()这个方法np.float64使用torch.from_numpy转化为torch后也是64位的float64torch.float64不要用float代替torch.float,否则可能出现意想不到的错误torch.float32与torch.float64数据类型相乘会出错,因此相乘的时候注意指定或转化数据float具体类型np和torch数据类型转化大体原理一样,只有相乘的时候,torch.float不一致不可相乘,np.float不一致可以相乘,并且转化为np.float64tensor转化为numpytorch.int64int64numpy转化为tensorint32torch.int32可以看到,torch默认int型是64位的,numpy默认int型是32位的补充:torch.from_numpy VS torch.Tensor最近在造dataset的时候,突然发现,在输入图像转tensor的时候,我可以用torch.Tensor直接强制转型将numpy类转成tensor类,也可以用torch.from_numpy这个方法将numpy类转换成ten免费云主机域名sor类,那么,torch.Tensor和torch.from_numpy这两个到底有什么区别呢?既然torch.Tensor能搞定,那torch.from_numpy留着不就是冗余吗?有区别,使用torch.from_numpy更加安全,使用tensor.Tensor在非float类型下会与预期不符。实际上,两者的区别是大大的。打个不完全正确的比方说,torch.Tensor就如同c的int,torch.from_numpy就如同c++的static_cast,我们都知道,如果将int64强制转int32,只要是高位转低位,一定会出现高位被抹去的隐患的,不仅仅可能会丢失精度,甚至会正负对调。这里的torch.Tensor与torch.from_numpy也会存在同样的问题。看看torch.Tensor的文档,里面清楚地说明了,torch.Tensor is an alias for the default tensor type (torch.FloatTensor).而torch.from_numpy的文档则是说明,The returned tensor and ndarray share the same memory. Modifications to the tensor will be reflected in the ndarray and vice versa. The returned tensor is not resizable.也即是说,1、当转换的源是float类型,torch.Tensor与torch.from_numpy会共享一块内存!且转换后的结果的类型是torch.float322、当转换的源不是float类型,torch.Tensor得到的是torch.float32,而torch.from_numpy则是与源类型一致!关于“numpy和torch数据类型如何转化”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注百云主机行业资讯频道,小编每天都会为大家更新不同的知识点。

相关推荐: 如何才能使用微信小程序

这篇“如何才能使用微信小程序”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何才能使用微信小程序”文章吧。   第一步:填写账号信息   微信小…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 09/01 07:36
下一篇 09/01 07:36

相关推荐