Tensor 和 NumPy 相互转换的实现

作者:xzw96 时间:2023-07-05 04:55:51 

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

1. Tensor 转 NumPy

a = torch.ones(6)
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. 1. 1.]
tensor([2., 2., 2., 2., 2., 2.]) [2. 2. 2. 2. 2. 2.]
tensor([3., 3., 3., 3., 3., 3.]) [3. 3. 3. 3. 3. 3.]

2. NumPy 数组转 Tensor

import numpy as np
a = np.ones(7)
b = torch.from_numpy(a)
print(a, b)

a += 1
print(a, b)
b += 1
print(a, b)
[1. 1. 1. 1. 1. 1. 1.] tensor([1., 1., 1., 1., 1., 1., 1.], dtype=torch.float64)
[2. 2. 2. 2. 2. 2. 2.] tensor([2., 2., 2., 2., 2., 2., 2.], dtype=torch.float64)
[3. 3. 3. 3. 3. 3. 3.] tensor([3., 3., 3., 3., 3., 3., 3.], dtype=torch.float64)

3. torch.tensor() 将 NumPy 数组转换成 Tensor

直接用torch.tensor()将NumPy数组转换成Tensor,该方法总是会进行数据拷贝,返回的Tensor和原来的数据不再共享内存。

import numpy as np
a = np.ones((2,3))
c = torch.tensor(a)
a += 1
print('a:',a)
print('c:',c)
print(id(a)==id(c))
a: [[2. 2. 2.]
[2. 2. 2.]]
c: tensor([[1., 1., 1.],
       [1., 1., 1.]], dtype=torch.float64)
False

来源:https://blog.csdn.net/qq_40630902/article/details/119574712

标签:Tensor,NumPy,转换
0
投稿

猜你喜欢

  • Django使用unittest模块进行单元测试过程解析

    2021-04-03 13:09:08
  • GoFrame代码优化gconv类型转换避免重复定义map

    2024-04-27 15:32:04
  • JS 排序输出实现table行号自增前端动态生成的tr

    2024-06-16 05:07:50
  • python使用opencv resize图像不进行插值的操作

    2023-09-12 15:04:25
  • php将12小时制转换成24小时制的方法

    2023-11-21 15:56:08
  • Python是什么 Python的用处

    2021-12-20 05:55:37
  • django ajax json的实例代码

    2023-01-15 00:56:18
  • python 实现数据库中数据添加、查询与更新的示例代码

    2023-10-08 04:09:51
  • Git的基本操作流程及工作区版本库暂存区的关系

    2022-03-10 04:52:42
  • js导出格式化的excel 实例方法

    2024-04-10 16:17:15
  • Oracle与SQL Server在企业应用的比较

    2024-01-25 07:22:11
  • pytorch查看torch.Tensor和model是否在CUDA上的实例

    2023-06-16 16:41:22
  • Python中使用threading.Event协调线程的运行详解

    2023-08-05 04:39:05
  • INSERT INTO SELECT语句与SELECT INTO FROM语句的一些区别

    2024-01-19 11:21:13
  • Python爬虫PyQuery库基本用法入门教程

    2022-06-26 05:13:02
  • python实现数通设备tftp备份配置文件示例

    2022-12-02 13:59:21
  • IE浏览器兼容Firefox的JS脚本的代码

    2024-04-10 13:58:15
  • SQL Server DATEDIFF() 函数用法

    2024-01-17 16:18:16
  • js为什么[]==![]是成立的吗

    2024-04-10 16:10:34
  • python障碍式期权定价公式

    2023-12-08 03:54:53
  • asp之家 网络编程 m.aspxhome.com