【动手学习深度学习】数据操作+代码练习

数据操作

N维数组是机器学习和神经网络的主要数据结构

在这里插入图片描述
在这里插入图片描述

创建数组

创建数组需要:(1)形状;(2)每个元素的数据类型;(3)每个元素的值

访问元素

在这里插入图片描述

数据操作实实现

入门

#%% 导入torch包
import torch
#%% 具有一个轴的张量称为向量;两个轴称为矩阵;
x = torch.arange(12)
x
#%% 访问张量(沿每个轴的长度)的形状
x.shape
#%% 获取张量中的总数
x.numel()
#%% 改变张量的形状,而不改变元素数量和元素值
X = x.reshape(3,4) #可以用x.reshape(-1,4)或x.reshape(3,-1)代替
X,x
#%% 全0张量
torch.zeros((2,3,4))
#%% 全1张量
torch.ones((2,3,4))
#%% 创建服从N(0,1)的张量
torch.randn(3,4)
#%% 直接为所需张量赋值,最外层的列表对应轴0,内层列表对应轴1
torch.tensor([[2,1,4,3],[1,2,3,4],[4,3,2,1]])

运算符

#%% 按元素操作,**代表求幂运算
x = torch.tensor([1.0,2,4,8])
y = torch.tensor([2,2,2,2])
x+y,x-y,x*y,x/y,x**y

在这里插入图片描述

#%% 求幂
torch.exp(x)
#%% 连结多个张量
X = torch.arange(12,dtype=torch.float32).reshape((3,4))
Y = torch.tensor([[2.0,1,4,3],[1,2,3,4],[4,3,2,1]])
torch.cat((X,Y),dim=0),torch.cat((X,Y),dim=1)

在这里插入图片描述

#%% 判断对应位置的值是否相等
X == Y

在这里插入图片描述

#%% 对张量中所有元素求和
X.sum()

在这里插入图片描述

广播机制

  1. 通过适当复制元素来扩展⼀个或两个数组,以便在转换之后,两个张量具有相同的形状;
  2. 对⽣成的数组执⾏按元素操作。
#%% 沿数组中长度为1的轴进行广播
a = torch.arange(3).reshape((3,1))
b = torch.arange(2).reshape((1,2))
a,b,a+b

在这里插入图片描述

#%% 索引和切片
X,X[-1],X[1:3]

在这里插入图片描述

#%% 通过指定索引来将元素写入矩阵
X[1,2]=9
X

在这里插入图片描述

节省内存

#%% 判断Y在进行操作后内存中的位置是否相同
before = id(Y)
Y=Y+X
id(Y)==before

在这里插入图片描述

#%% 我们可以使⽤切⽚表⽰法将操作的结果分配给先前分配的数组
Z = torch.zeros_like(Y)
print('id(Z):',id(Z))
Z[:]= X+Y
print('id(Z):',id(Z))

v

#%% 也可以使⽤X[:] = X + Y或X += Y来减少操作的内存开销
before = id(X)
X +=Y
id(X) == before

在这里插入图片描述

转换其他python对象

#%% 张量转换
A = X.numpy()
B = torch.tensor(A)
type(A),type(B)

在这里插入图片描述

#%% 将大小为1的张量转换为python标量
a = torch.tensor([3.5])
a,a.item(),float(a),int(a)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我是小蔡呀~~~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值