将Tensor和NumPy相互转换的方法

文章讲述了在PyTorch中如何将Tensor转换为NumPy数组,以及反之的过程。使用numpy()和from_numpy()方法会产生内存共享,而torch.tensor()会创建副本。改变共享内存的Tensor或NumPy数组会影响对方,但torch.tensor()创建的Tensor不受影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Tensor和NumPy相互转换

我们很容易用 numpy()from_numpy() 将 Tensor 和NumPy中的数组相互转换。

但是需要注意的点是: 这两个函数所产⽣生的的 Tensor 和NumPy中的数组共享相同的内存(所以他们之间的转换很快),改变其中⼀个时另⼀个也会改变!!!

还有一个常用的将NumPy中的array转换成 Tensor 的方法就是 torch.tensor() , 需要注意的
是,此方法总是会进行数据拷贝(就会消耗更多的时间和空间),所以返回的 Tensor 和原来的数据不再共享内存。

Tensor转NumPy

使用numpy()将 Tensor 转换成NumPy数组:

a = torch.ones(5)
b = a.numpy()
print(a, b)
a += 1
print(a, b)
b += 1
print(a, b)

输出为:

tensor([1., 1., 1., 1., 1.]) [1. 1. 1. 1. 1.]
tensor([2., 2., 2., 2., 2.]) [2. 2. 2. 2. 2.]
tensor([3., 3., 3., 3., 3.]) [3. 3. 3. 3. 3.]

NumPy数组转 Tensor

通过使用 from_numpy() 将NumPy数组转换成 Tensor :

import numpy as np
a = np.ones(5)
b = torc
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值