2.1数据操作(《动手学深度学习笔记》)

1. 入门

张量表示一个由数值组成的数组。具有一个轴的张量对应数学上的向量,两个轴的张量对应矩阵。
导入pytorch
在这里插入图片描述

x.range(12) 表示创建包含十二个元素的行向量,默认为0-11
在这里插入图片描述

x.shape:用于访问张量的形状
x.numel: 用于得到张量中元素总数
在这里插入图片描述

x.reshape: 可以在不改变原本元素个数的基础上改变张量形状
在这里插入图片描述

x.zeros((x,y,z)) : 创建 xyz的全0张量
x.ones((x,y,z)) : 创建xyz的全1 张量
在这里插入图片描述

torch.randn(x,y) : 随机采样得到张量中每个元素的值
torch.tensor([ [],[],[] ]) : 通过提供包含数值的python列表(或嵌套列表), 为张量赋值
在这里插入图片描述

2. 运算符

+,-,,/,**(求幂运算)对于任意具有相同形状的张量,均是按元素运算
在这里插入图片描述
torch.exp(x) : 计算e的x幂(x是张量)
在这里插入图片描述
张量连接: 需提供张量列表,并给出沿哪个轴连接
torch.cat((x,y),dim=n) : 将张量x,y连接,按照维度n为进行连接
例如:假设x,y是3
4的矩阵
dim = 0 ,即按行连接,连接矩阵后变为64的矩阵
dim = 1,即按列连接,连接矩阵和变为3
8的矩阵
在这里插入图片描述
同理可扩展到n个轴的张量连接


逻辑运算符构建二元张量:x==y,对应位置为true/false
x.sum(): 元素求和
在这里插入图片描述

3.广播机制

广播机制:形状不用的张量会扩展为更大的形状相同的张量
在这里插入图片描述

4. 索引和切片

张量中的元素可以通过索引访问(第一个元素索引为0,最后一个元素索引为-1)
切片时,区间为左闭右开(例[1:3],选定元素下标为1和2)
在这里插入图片描述

在这里插入图片描述
通过指定索引将元素写入矩阵:" :" 选定当前轴上所有元素
在这里插入图片描述

5. 节省内存

y = x +y; # 可能会分配新的内存,后面的y与前面的y在不同的空间
使用切片表示法,执行原地操作(保证不分配新的空间) : y[ : ] = < expression >
在这里插入图片描述
可以看到z的地址没有变化,使用切片表示法不会分配新空间

6. 转换为其他python对象

Numpy张量转换为tensor张量: torch.tensor(x.numpy())
tensor张量转换为numpy张量: a.item() # a是tensor张量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值