执行前向传播

使用 PyTorch 的深度学习入门

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

什么是前向传播?

$$

  • 输入数据在各层间流动
  • 每层执行计算
  • 最后一层生成输出

$$

  • 输出由权重偏置决定
  • 用于训练预测

前向传播示意

使用 PyTorch 的深度学习入门

什么是前向传播?

$$

可能的输出:

  • 二分类
  • 多分类
  • 回归

突出最终输出的前向传播示意

使用 PyTorch 的深度学习入门

二分类:前向传播

带注释的代码块

# 创建二分类模型
model = nn.Sequential(
  nn.Linear(6, 4), # 第1个线性层
  nn.Linear(4, 1), # 第2个线性层
  nn.Sigmoid() # Sigmoid 激活函数
)
使用 PyTorch 的深度学习入门

二分类:前向传播

# 将输入数据传入模型
output = model(input_data)
print(output)
tensor([[0.5188], [0.3761], [0.5015], [0.3718], [0.4663]], 
    grad_fn=<SigmoidBackward0>)
  • 输出:五个介于 0 到 1 的概率,每个动物一个

  • 分类(阈值 0.5):

    • 值 ≥ 0.5 为类别 = 1(哺乳动物)(0.51880.5015
    • 值 < 0.5 为类别 = 0(非哺乳动物)(0.37610.37180.4633
使用 PyTorch 的深度学习入门

多分类:前向传播

  • 类别1:哺乳动物,类别2:鸟类,类别3:爬行动物
n_classes = 3


# 创建多分类模型 model = nn.Sequential( nn.Linear(6, 4), # 第1个线性层 nn.Linear(4, n_classes), # 第2个线性层
nn.Softmax(dim=-1) # Softmax 激活 )
# 将输入数据传入模型 output = model(input_data) print(output.shape)
torch.Size([5, 3])
使用 PyTorch 的深度学习入门

多分类:前向传播

多分类示意图

  • 每行概率之和为 1
  • 预测标签 = 概率最高的类别
  • 第1行=类别1(哺乳动物),第2行=类别1(哺乳动物),第3行=类别3(爬行动物)
使用 PyTorch 的深度学习入门

回归:前向传播

# 创建回归模型
model = nn.Sequential(
  nn.Linear(6, 4), # 第1个线性层
  nn.Linear(4, 1) # 第2个线性层
)

# 将输入数据传入模型
output = model(input_data)

# 返回输出
print(output)
tensor([[0.3818],
        [0.0712],
        [0.3376],
        [0.0231],
        [0.0757]], 
        grad_fn=<AddmmBackward0>)
使用 PyTorch 的深度学习入门

Passons à la pratique !

使用 PyTorch 的深度学习入门

Preparing Video For Download...