Pytorch之Tensor和Numpy之间的转换的实现方法


Posted in Python onSeptember 03, 2020

为什么要相互转换:

1. 要对tensor进行操作,需要先启动一个Session,否则,我们无法对一个tensor比如一个tensor常量重新赋值或是做一些判断操作,所以如果将它转化为numpy数组就好处理了。下面一个小程序讲述了将tensor转化为numpy数组,以及又重新还原为tensor:

2. Torch的Tensor和numpy的array会共享他们的存储空间,修改一个会导致另外的一个也被修改。

学习链接:https://github.com/chenyuntc/pytorch-book

特别提醒[注意Tensor大小写]

  1. 最重要的区别t.Tensort.tensor:不论输入的类型是什么,t.tensor()都会进行数据拷贝,不会共享内存;t.Tensor()与Numpy共享内存,但当Numpy的数据类型和Tensor的类型不一样的时候,数据会被复制,不会共享内存。
  2. 可使用t.from_numpy()或者t.detach()将Numpy转为Tensor,与原Numpy数据共享内存。

附上实验证明

常规转换:使用t.from_numpy()将Numpy转为Tensor,使用torch.numpy()将Tensor转为Numpy

Pytorch之Tensor和Numpy之间的转换的实现方法

需要注意的情况:使用t.Tensor()进行转换,发现Numpy的数据类型和Tensor的类型一致,因此共享内存

Pytorch之Tensor和Numpy之间的转换的实现方法

需要注意的情况:使用t.Tensor()进行转换,发现Numpy的数据类型和Tensor的类型不一致,因此b与a不共享内存

Pytorch之Tensor和Numpy之间的转换的实现方法

需要注意的情况:使用t.tensor()进行转换,只进行数据拷贝,不会共享内存

Pytorch之Tensor和Numpy之间的转换的实现方法

到此这篇关于Pytorch之Tensor和Numpy之间的转换的实现方法的文章就介绍到这了,更多相关Pytorch Tensor和Numpy转换内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python操作SQLite简明教程
Jul 10 Python
使用Python的内建模块collections的教程
Apr 28 Python
实例解析Python中的__new__特殊方法
Jun 02 Python
matplotlib在python上绘制3D散点图实例详解
Dec 09 Python
Django添加sitemap的方法示例
Aug 06 Python
matplotlib实现热成像图colorbar和极坐标图的方法
Dec 13 Python
由面试题加深对Django的认识理解
Jul 19 Python
解决python中导入win32com.client出错的问题
Jul 26 Python
python实现井字棋小游戏
Mar 04 Python
Django使用list对单个或者多个字段求values值实例
Mar 31 Python
pygame实现弹球游戏
Apr 14 Python
使用bandit对目标python代码进行安全函数扫描的案例分析
Jan 27 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
图解Python中深浅copy(通俗易懂)
Sep 03 #Python
python简单实现9宫格图片实例
Sep 03 #Python
You might like
简单的过滤字符串中的HTML标记
2006/12/25 PHP
PHP不用第三变量交换2个变量的值的解决方法
2013/06/02 PHP
PHP新建类问题分析及解决思路
2015/11/19 PHP
php中yar框架实例用法讲解
2020/12/27 PHP
javascript将相对路径转绝对路径示例
2014/03/14 Javascript
jQuery异步验证用户名是否存在示例代码
2014/05/21 Javascript
jquery中EasyUI实现异步树
2015/03/01 Javascript
深入学习JavaScript对象
2015/10/13 Javascript
form表单转Json提交的方法(推荐)
2016/09/23 Javascript
AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法
2017/01/04 Javascript
js实现文字选中分享功能
2017/01/25 Javascript
vue.js实现含搜索的多种复选框(附源码)
2017/03/23 Javascript
JS创建Tag标签的方法详解
2017/06/09 Javascript
AngularJS 实现点击按钮获取验证码功能实例代码
2017/07/13 Javascript
vue2导航根据路由传值,而改变导航内容的实例
2017/11/10 Javascript
使用FormData实现上传多个文件
2018/12/04 Javascript
解决cordova+vue 项目打包成APK应用遇到的问题
2019/05/10 Javascript
微信小程序中weui用法解析
2019/10/21 Javascript
vue 修改 data 数据问题并实时显示操作
2020/09/07 Javascript
Vue $attrs & inheritAttr实现button禁用效果案例
2020/12/07 Vue.js
ES5和ES6中类的区别总结
2020/12/21 Javascript
Python中的下划线详解
2015/06/24 Python
python 中random模块的常用方法总结
2017/07/08 Python
python中requests和https使用简单示例
2018/01/18 Python
Python pyinotify日志监控系统处理日志的方法
2018/03/08 Python
Python 修改列表中的元素方法
2018/06/26 Python
详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强
2020/11/17 Python
CSS3的Flexbox布局的简明入门指南
2016/04/08 HTML / CSS
现代家居用品及礼品:LBC Modern
2018/06/24 全球购物
乌克兰最大的家用电器和电子产品连锁店:Eldorado
2019/10/02 全球购物
2014年幼儿园个人工作总结
2014/11/10 职场文书
倡议书范文大全
2015/04/28 职场文书
联欢会开场白
2015/06/01 职场文书
焦裕禄观后感
2015/06/03 职场文书
HTML速写之Emmet语法规则的实现
2021/04/07 HTML / CSS
victoriaMetrics库布隆过滤器初始化及使用详解
2022/04/05 Golang