深度学习李沐第一节-数据操作

(1)N维数组
0-d 标量、1-d向量、2-d矩阵、3-d RGB图片(宽x高x通道).....
(2)代码实战

① 新建一个张量。

张量表示一个数值组成的数组,这个数组可能是多个维度。


② 通过shape属性来访问张量的形状 和 张量中元素的总数。


③ 要改变一个张量的形状,而不改变元素的数量和元素值,我们可以通过reshape函数。


④ 使用全0、全1、其他常量或从特定分布中随机采样的数字。


⑤ 通过提供包含数值的Python列表来为所需张量中的每个元素赋予确定值。


⑥ 常见的标准算术运算


2、广播机制


①① 可以用[-1] 选择最后一个元素,用[1:3]选择第二个和第三个元素。


①② 可以通过指定索引来将元素写入矩阵


①④  一些操作可能会导致为新结果分配内存


 


4、数据预处理
(1)创建人工数据集,并存储在csv文件


(2)填充缺失值。

使用均值、中位数或众数填充或删除

11、自动求导

自动求导通常基于两种模式:前向模式和反向模式。

12、梯度

调用一个Tensor的.backward()方法时,PyTorch会沿着这个DAG反向传播求梯度。

.detach()torch.no_grad()

  • .detach()方法用于将Tensor从计算图中分离出来,返回一个与原Tensor相同但不再需要梯度的Tensor。
  • torch.no_grad()是一个上下文管理器,可以在执行代码块时暂时禁用梯度计算。

代码:

import torch  
  
# 定义变量,requires_grad=True表示需要计算梯度  
x = torch.tensor([2.0, 3.0], requires_grad=True)  
y = torch.tensor([4.0, 1.0], requires_grad=True)  
  
# 执行操作  
z = x * y  
  
# 反向传播前,需要定义一个标量(scalar)作为目标函数,这里我们取z的和  
out = z.sum()  
  
# 反向传播,计算梯度  
out.backward()  
  
# 打印梯度  
print(x.grad)  # 输出: tensor([4., 1.]),即dz/dx  
print(y.grad)  # 输出: tensor([2., 3.]),即dz/dy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值