基础学习——numpy与tensor张量的转换

本文详细介绍了如何在Python中实现Numpy数组与Tensor张量之间的相互转换,并提供了具体的代码示例。从Numpy数组转换为Tensor张量,再到Tensor张量转回Numpy数组,以及将Tensor张量转换为其他数据类型的方法。
摘要由CSDN通过智能技术生成

系列文章目录

Numpy学习——创建数组及常规操作(数组创建、切片、维度变换、索引、筛选、判断、广播)
Tensor学习——创建张量及常规操作(创建、切片、索引、转换、维度变换、拼接)
基础学习——numpy与tensor张量的转换
基础学习——关于list、numpy、torch在float和int等数据类型转换方面的总结



前言

在卷积神经网络时经常会用到numpy的数组变量类型与tensor张量类型之间的转换,在这里总结了一下。


一、numpy数组转tensor张量

#导入包
import numpy as np
import torch
a = np.random.normal(0, 1, (2, 3))
b= torch.tensor(a)
a,b

(array([[-0.37468825, 0.81942854, -1.56010579],
[-0.00805839, 0.9578339 , 1.95072451]]),
tensor([[-0.3747, 0.8194, -1.5601],
[-0.0081, 0.9578, 1.9507]], dtype=torch.float64))

a = np.random.normal(0, 1, (4, 5))
b= torch.from_numpy(a)
a,b

(array([[-0.47197733, 1.53828686, -1.72156097],
[-2.05017441, 1.23956538, -0.80934275]]),
tensor([[-0.4720, 1.5383, -1.7216],
[-2.0502, 1.2396, -0.8093]], dtype=torch.float64))

二、tensor张量转numpy数组

import numpy as np
import torch
t = torch.arange(1, 10).reshape(3, 3)
x = t.numpy()
t,x

(tensor([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]),
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]], dtype=int64))

x = t.detach().numpy() # 用了detach(),不需要计算梯度了

三、tensor张量转其他

使用.item将张量转化为单独的数值进行输出

a = torch.tensor(1)
a.item()

tensor(1)
1

t = torch.arange(10)
t1 = t.tolist()  #张量转化为列表
t2 = list(t)
t,t1,t2

(tensor([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]),
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

[tensor(0),
tensor(1),
tensor(2),
tensor(3),
tensor(4),
tensor(5),
tensor(6),
tensor(7),
tensor(8),
tensor(9)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chaoy6565

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值