PyTorch入门学习 8-Tensor和NumPy相互转换

avatar 2024年04月15日16:38:32 0 540 views
博主分享免费Java教学视频,B站账号:Java刘哥 ,长期提供技术问题解决、项目定制:本站商品点此

主要使用 numpy() 和 from_numpy 实现 Tensor 和 NumPy的数据转换

关于是否共享内存,总结下

NumPy转Tensor 共享内存 torch.from_numpy()
不共享内存 torch.tensor()
Tensor转NumPy 共享内存 Tensor.numpy()
不共享内存 Tensor.clone().numpy()

代码

import numpy as np
import torch

# 例1、NumPy数组转成Tensor, from_numpy(),共享内存
a = np.array([1, 2, 3, 4, 5])
b = torch.from_numpy(a)
print(a, b)
a += 1
print(a, b)  # 相同,说明共享内存
print()

# 例2、NumPy数组转成Tensor, tensor(),不共享内存
a = np.array([1, 2, 3, 4, 5])
b = torch.tensor(a)
print(a, b)
a += 1
print(a, b)  # 不相同,说明不共享内存
print()


# 例3、Tensor转成NumPy数组, numpy(),共享内存
a = torch.tensor([1, 2, 3, 4, 5])
b = a.numpy()
print(a, b)
a += 1
print(a, b) # 相同,说明共享内存
print()

# 例4、Tensor转成NumPy数组, clone(),不共享内存
a = torch.tensor([1, 2, 3, 4, 5])
b = a.clone().numpy()
print(a, b)
a += 1
print(a, b) # 不相同,说明不共享内存

 

运行结果

[1 2 3 4 5] tensor([1, 2, 3, 4, 5])
[2 3 4 5 6] tensor([2, 3, 4, 5, 6])

[1 2 3 4 5] tensor([1, 2, 3, 4, 5])
[2 3 4 5 6] tensor([1, 2, 3, 4, 5])

tensor([1, 2, 3, 4, 5]) [1 2 3 4 5]
tensor([2, 3, 4, 5, 6]) [2 3 4 5 6]

tensor([1, 2, 3, 4, 5]) [1 2 3 4 5]
tensor([2, 3, 4, 5, 6]) [1 2 3 4 5]

 

  • 微信
  • 交流学习,资料分享
  • weinxin
  • 个人淘宝
  • 店铺名:言曌博客咨询部

  • (部分商品未及时上架淘宝)
avatar

发表评论

avatar 登录者:匿名
匿名评论,评论回复后会有邮件通知

  

已通过评论:0   待审核评论数:0