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的迭代器、生成器以及相关的itertools包
Apr 02 Python
使用Python写个小监控
Jan 27 Python
Python 递归函数详解及实例
Dec 27 Python
Python入门之三角函数tan()函数实例详解
Nov 08 Python
python如何在列表、字典中筛选数据
Mar 19 Python
Python读取excel指定列生成指定sql脚本的方法
Nov 28 Python
python3实现猜数字游戏
Dec 07 Python
Python tkinter三种布局实例详解
Jan 06 Python
python如何实现单链表的反转
Feb 10 Python
Python实现迪杰斯特拉算法并生成最短路径的示例代码
Dec 01 Python
python编程的核心知识点总结
Feb 08 Python
我对PyTorch dataloader里的shuffle=True的理解
May 20 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
【星际争霸1】人族1v7家ZBath
2020/03/04 星际争霸
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
2007/04/12 PHP
PHP实现图片裁剪、添加水印效果代码
2014/10/01 PHP
使用PHP生成图片的缩略图的方法
2015/08/18 PHP
php使用curl下载指定大小的文件实例代码
2017/09/30 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
在JavaScript中使用inline函数的问题
2007/03/08 Javascript
jquery在Chrome下获取图片的长宽问题解决
2013/03/20 Javascript
Extjs407 getValue()和getRawValue()区别介绍
2013/05/21 Javascript
js之事件冒泡和事件捕获详细介绍
2013/10/28 Javascript
css结合js制作下拉菜单示例代码
2014/02/27 Javascript
js使用ajax读博客rss示例
2014/05/06 Javascript
jQuery右侧选项卡焦点图片轮播特效代码分享
2015/09/05 Javascript
浅谈JavaScript 函数参数传递到底是值传递还是引用传递
2016/08/23 Javascript
JS运动特效之链式运动分析
2018/01/24 Javascript
vue实现按需加载组件及异步组件功能
2019/05/27 Javascript
记录vue做微信自定义分享的一些问题
2019/09/12 Javascript
Vue实现数据请求拦截
2019/10/23 Javascript
简单介绍Python中的struct模块
2015/04/28 Python
为Python的web框架编写MVC配置来使其运行的教程
2015/04/30 Python
matplotlib作图添加表格实例代码
2018/01/23 Python
pyhton列表转换为数组的实例
2018/04/04 Python
python 获取sqlite3数据库的表名和表字段名的实例
2019/07/17 Python
python中hasattr()、getattr()、setattr()函数的使用
2019/08/16 Python
你正在寻找的CSS3 动画技术
2011/07/27 HTML / CSS
HTML5 常用语法一览(列举不支持的属性)
2010/01/26 HTML / CSS
Lookfantastic希腊官网:英国知名美妆购物网站
2018/09/15 全球购物
法国房车租赁网站:Yescapa
2019/08/26 全球购物
几个人围成一圈的问题
2013/09/26 面试题
一个C/C++编程面试题
2013/11/10 面试题
四年级科学教学反思
2014/02/10 职场文书
勤俭节约倡议书
2014/04/14 职场文书
幼儿园课题实施方案
2014/05/14 职场文书
活动总结范文
2014/08/30 职场文书
详解Oracle块修改跟踪功能
2021/11/07 Oracle
windows server 2012安装FTP并配置被动模式指定开放端口
2022/06/10 Servers