【python】numpy和tensor互相转换

简介: numpy和tensor互相转换

在用pytorch训练神经网络时,常常需要在numpy的数组变量类型与pytorch中的tensor类型进行转换。

一、numpy转tensor

首先,导入需要使用的包:

import numpy as np
import torch

然后创建一个numpy类型的数组:

x = np.ones(5)
print(type(x)) # 查看x的类型

这里创建了一个一维的数组,5个都为1,我们打印一下这个x的类型显示如下:

<class 'numpy.ndarray'>

这个就说明现在x是numpy类型的一个数组,用下面的代码将x转换成tensor类型:

x = torch.tensor(x)
print(type(x))

这个打印的结果是:

<class 'torch.Tensor'> # 数明numpy转tensor成功

也可以使用:

x = torch.from_numpy(x)
二、tensor转numpy

直接上代码:

import torch
x = torch.ones(5) # 创建张量x
# tensor([1., 1., 1., 1., 1.])
x_ = x.detach().numpy() # 转换
# array([1., 1., 1., 1., 1.], dtype=float32)

也可以使用

x_= x.numpy()

主要区别在于是否使用detach(),也就是返回的新变量是否需要计算梯度。【用了detach(),不需要计算梯度了】

参考

https://www.cnblogs.com/wzyuan/p/9733433.html

https://www.cnblogs.com/kiwiwk/p/11716459.html

https://blog.csdn.net/weixin_33913332/article/details/93300411

---------------2021.4.23更新---------------------
tensor转为numpy后,遇到一个新的问题,(3,64,64)如何转为(64,64,3)

解决方法:
torch.Tensor转numpy.ndarray:

np.transpose(tensor_a.numpy(), (1, 2, 0)) # 将C x H x W 转化为 H x W x C 

文章首发于:https://blog.csdn.net/AugustMe/article/details/113841470

参考
https://blog.csdn.net/renweiyi1487/article/details/108933387
https://blog.csdn.net/baidu_26646129/article/details/86712889

相关文章
|
29天前
|
机器学习/深度学习 数据处理 计算机视觉
NumPy实践宝典:Python高手教你如何轻松玩转数据处理!
【8月更文挑战第22天】NumPy是Python科学计算的核心库,专长于大型数组与矩阵运算,并提供了丰富的数学函数。首先需安装NumPy (`pip install numpy`)。之后可通过创建数组、索引与切片、执行数学与逻辑运算、变换数组形状及类型、计算统计量和进行矩阵运算等操作来实践学习。NumPy的应用范围广泛,从基础的数据处理到图像处理都能胜任,是数据科学领域的必备工具。
44 0
|
21天前
|
存储 缓存 C语言
|
20天前
|
机器学习/深度学习 存储 算法
NumPy 与 SciPy:Python 科学计算库的比较
【8月更文挑战第30天】
53 1
|
1月前
|
存储 缓存 索引
Python中的NumPy库详解
Python中的NumPy库详解
|
1月前
|
机器学习/深度学习 数据可视化 API
Python Numpy 切片和索引(高级索引、布尔索引、花式索引)
Python Numpy 切片和索引(高级索引、布尔索引、花式索引)
30 3
|
1月前
|
索引 Python
Python NumPy 广播(Broadcast)
Python NumPy 广播(Broadcast)
26 2
|
1月前
|
数据采集 数据挖掘 数据处理
Python数据分析:Numpy、Pandas高级
在上一篇博文中,我们介绍了Python数据分析中NumPy和Pandas的基础知识。本文将深入探讨NumPy和Pandas的高级功能,并通过一个综合详细的例子展示这些高级功能的应用。
|
1月前
|
数据采集 数据挖掘 数据处理
Python数据分析:Numpy、Pandas基础
本文详细介绍了 Python 中两个重要的数据分析库 NumPy 和 Pandas 的基础知识,并通过一个综合的示例展示了如何使用这些库进行数据处理和分析。希望通过本篇博文,能更好地理解和掌握 NumPy 和 Pandas 的基本用法,为后续的数据分析工作打下坚实的基础。
|
20天前
|
存储 C语言 Python
|
21天前
|
存储 并行计算 测试技术
NumPy 性能优化:提升 Python 数值计算的速度
【8月更文第30天】Python 是一种广泛使用的编程语言,在科学计算领域尤其受欢迎。然而,由于 Python 的动态类型和解释执行机制,其在处理大规模数值数据时可能会显得相对较慢。为了克服这一限制,NumPy(Numerical Python)库提供了高性能的多维数组对象以及一系列用于操作这些数组的函数。本文将探讨如何利用 NumPy 来提高 Python 中数值运算的效率。
36 0