详解pytorch tensor和ndarray转换相关总结


Posted in Python onSeptember 03, 2020

在使用pytorch的时候,经常会涉及到两种数据格式tensor和ndarray之间的转换,这里总结一下两种格式的转换:

1. tensor cpu 和tensor gpu之间的转化:

tensor cpu 转为tensor gpu:
tensor_gpu = tensor_cpu.cuda()

>>> tensor_cpu = torch.ones((2,2))
tensor([[1., 1.],
    [1., 1.]])
>>> tensor_gpu = tensor_cpu.cuda()
tensor([[1., 1.],
    [1., 1.]], device='cuda:0')

tensor gpu 转为tensor cpu:
tensor_cpu = tensor_gpu.cuda()

>>> tensor_gpu.cpu()
tensor([[1., 1.],
    [1., 1.]])

2. tensor cpu 和 ndarray 之间的转化:

tensor cpu 转为 ndarray:

>>> np_array= tensor_cpu.numpy()
array([[1., 1.],
    [1., 1.]], dtype=float32)

ndarray 转为 tensor cpu:
注:ndarray的默认精度为64位,Tensor的默认精度位32位,所以通过Tensor直接转换的话,精度会转换到32位,若通过from_numpy的方式,则会保留原来64位精度

>>> torch.from_numpy(np.ones((2,2)))
tensor([[1., 1.],
    [1., 1.]], dtype=torch.float64)
>>> torch.Tensor(np.ones((2,2)))
tensor([[1., 1.],
    [1., 1.]])

3. tensor cpu 和 scalar 之间的转化:

如果只是训练了一个简单的分类网络,对单个样本的输出会是一个标量(scalar)

>>>torch.ones((1,1)).item()
1.0

通过一张图说明三者的转化方式:

详解pytorch tensor和ndarray转换相关总结

到此这篇关于详解pytorch tensor和ndarray转换相关总结的文章就介绍到这了,更多相关pytorch tensor和ndarray转换内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
简单解决Python文件中文编码问题
Nov 22 Python
Python控制多进程与多线程并发数总结
Oct 26 Python
python 用lambda函数替换for循环的方法
Jun 09 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
Nov 18 Python
在PyCharm中实现关闭一个死循环程序的方法
Nov 29 Python
python实时获取外部程序输出结果的方法
Jan 12 Python
python里运用私有属性和方法总结
Jul 08 Python
Python+OpenCV实现实时眼动追踪的示例代码
Nov 11 Python
解决pycharm中导入自己写的.py函数出错问题
Feb 12 Python
python 实现关联规则算法Apriori的示例
Sep 30 Python
Python可以用来做什么
Nov 23 Python
cookies应对python反爬虫知识点详解
Nov 25 Python
python开发入门——列表生成式
Sep 03 #Python
Pytorch之Tensor和Numpy之间的转换的实现方法
Sep 03 #Python
Python 多线程C段扫描、检测 Ping扫描脚本的实现
Sep 03 #Python
Python开发入门——迭代的基本使用
Sep 03 #Python
Python 整行读取文本方法并去掉readlines换行\n操作
Sep 03 #Python
Python多分支if语句的使用
Sep 03 #Python
Python判断字符串是否为合法标示符操作
Sep 03 #Python
You might like
JAVA/JSP学习系列之二
2006/10/09 PHP
php环境下利用session防止页面重复刷新的具体实现
2014/01/09 PHP
一段实用的php验证码函数
2016/05/19 PHP
PHP仿微信多图片预览上传实例代码
2016/09/13 PHP
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
2018/12/08 PHP
PHP抽象类基本用法示例
2018/12/28 PHP
Prototype使用指南之form.js
2007/01/10 Javascript
原生javascript图片自动或手动切换示例附演示源码
2013/09/04 Javascript
node.js中的fs.rename方法使用说明
2014/12/16 Javascript
jQuery实现二级下拉菜单效果
2016/01/05 Javascript
基于zepto的移动端轻量级日期插件--date_picker
2016/03/04 Javascript
学JavaScript七大注意事项【必看】
2016/05/04 Javascript
JQuery点击事件回到页面顶部效果的实现代码
2016/05/24 Javascript
JavaScript中setTimeout的那些事儿
2016/11/14 Javascript
vue 弹框产生的滚动穿透问题的解决
2018/09/21 Javascript
小程序的上传文件接口的注意要点解析
2019/09/17 Javascript
在vue中利用v-html按分号将文本换行的例子
2019/11/14 Javascript
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
2014/05/23 Python
python获取从命令行输入数字的方法
2015/04/29 Python
mysql 之通过配置文件链接数据库
2017/08/12 Python
基于 Django 的手机管理系统实现过程详解
2019/08/16 Python
Python短信轰炸的代码
2020/03/25 Python
Aurora London官网:奢华、负担得起的皮革手袋
2020/08/01 全球购物
一道写SQL的面试题和答案
2013/11/19 面试题
现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset
2012/11/09 面试题
违反学校规定检讨书
2014/01/18 职场文书
恐龙的灭绝教学反思
2014/02/12 职场文书
西式婚礼主持词
2014/03/13 职场文书
考生诚信考试承诺书
2014/05/23 职场文书
医院安全生产月活动总结
2014/07/05 职场文书
公司副总经理岗位职责
2014/10/01 职场文书
解除劳动关系协议书2篇
2014/11/28 职场文书
golang中字符串MD5生成方式总结
2021/07/04 Golang
交互式可视化js库gojs使用介绍及技巧
2022/02/18 Javascript
navicat 连接Ubuntu虚拟机的mysql的操作方法
2022/04/02 MySQL
Sentry的安装、配置、使用教程(Sentry日志手机系统)
2022/07/23 Python