Numpy与Pytorch互转时需要注意什么问题
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章主要为大家展示了"Numpy与Pytorch互转时需要注意什么问题",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Numpy与Pytorch互转时需
千家信息网最后更新 2025年01月16日Numpy与Pytorch互转时需要注意什么问题
这篇文章主要为大家展示了"Numpy与Pytorch互转时需要注意什么问题",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Numpy与Pytorch互转时需要注意什么问题"这篇文章吧。
1.1、numpy --> torch
使用 torch.from_numpy() 转换,需要注意,两者共享内存。例子如下:
import torchimport numpy as npa = np.array([1,2,3])b = torch.from_numpy(a)np.add(a, 1, out=a)print('转换后a', a)print('转换后b', b)# 显示转换后a [2 3 4]转换后b tensor([2, 3, 4], dtype=torch.int32)
1.2、torch--> numpy
使用 .numpy() 转换,同样,两者共享内存。例子如下:
import torchimport numpy as npa = torch.zeros((2, 3), dtype=torch.float)c = a.numpy()np.add(c, 1, out=c)print('a:', a)print('c:', c)# 结果a: tensor([[1., 1., 1.], [1., 1., 1.]])c: [[1. 1. 1.] [1. 1. 1.]]
需要注意的是,如果将程序中的 np.add(c, 1, out=c) 改成 c = c + 1 会发现两者貌似不共享内存了,其实不然,原因是后者相当于改变了 c 的存储地址。可以使用 id(c) 发现c的内存位置变了。
补充:pytorch中tensor数据和numpy数据转换中注意的一个问题
在pytorch中,把numpy.array数据转换到张量tensor数据的常用函数是torch.from_numpy(array)或者torch.Tensor(array),第一种函数更常用。
下面通过代码看一下区别:
import numpy as npimport torcha=np.arange(6,dtype=int).reshape(2,3)b=torch.from_numpy(a)c=torch.Tensor(a)a[0][0]=10print(a,'',b,'',c)[[10 1 2] [ 3 4 5]] tensor([[10, 1, 2], [ 3, 4, 5]], dtype=torch.int32) tensor([[0., 1., 2.], [3., 4., 5.]])c[0][0]=10print(a,'',b,'',c)[[10 1 2] [ 3 4 5]] tensor([[10, 1, 2], [ 3, 4, 5]], dtype=torch.int32) tensor([[10., 1., 2.], [ 3., 4., 5.]])print(b.type())torch.IntTensorprint(c.type())torch.FloatTensor
可以看出修改数组a的元素值,张量b的元素值也改变了,但是张量c却不变。修改张量c的元素值,数组a和张量b的元素值都不变。
这说明torch.from_numpy(array)是做数组的浅拷贝,torch.Tensor(array)是做数组的深拷贝。
以上是"Numpy与Pytorch互转时需要注意什么问题"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
张量
问题
元素
内存
数据
数组
内容
篇文章
例子
函数
常用
拷贝
学习
帮助
代码
位置
其实不然
原因
地址
易懂
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
科技公司软件开发部门经理
软件开发测试
桃花源小说软件开发
企业邮件服务器
英雄战纪星际迷航是哪个服务器
四川多媒体软件开发
数据库系统如何进行维护
一个游戏怎么开新服务器
浪潮服务器未来趋势
美股 网络安全 估值
数据库系统工程师考试试卷
沈阳鸿鑫网络技术服务有限公司
家用服务器怎么配置防火墙
知网学术热点数据库
网络安全教育熊烨
服务器 多少位
软件开发系统故障
把网络安全宣传进社区
数学不 好可学网络技术专业
网页服务器资源管理器
对网络安全法的修改意见
九江个人服务器价格
卫生网络安全应急预案
大华dss平台中心服务器密码
工作岗位网络安全注意事项
做软件开发兼职的软件
宽城区品质网络技术推荐咨询
计算机网络技术要考英语四六级吗
win7 链接服务器
手游服务器端用什么语言