執行前向傳遞

使用 PyTorch 的深度學習入門

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

什麼是前向傳遞?

$$

  • 輸入資料流經各層
  • 每層執行計算
  • 最終層產生輸出

$$

  • 輸出取決於權重偏差
  • 用於訓練預測

前向傳遞示意圖

使用 PyTorch 的深度學習入門

什麼是前向傳遞?

$$

可能的輸出:

  • 二元分類
  • 多類別分類
  • 迴歸

前向傳遞示意圖(標示最終輸出)

使用 PyTorch 的深度學習入門

二元分類:前向傳遞

含註解的程式碼區塊

# Create binary classification model
model = nn.Sequential(
  nn.Linear(6, 4), # First linear layer
  nn.Linear(4, 1), # Second linear layer
  nn.Sigmoid() # Sigmoid activation function
)
使用 PyTorch 的深度學習入門

二元分類:前向傳遞

# Pass input data through model
output = model(input_data)
print(output)
tensor([[0.5188], [0.3761], [0.5015], [0.3718], [0.4663]], 
    grad_fn=<SigmoidBackward0>)
  • 輸出:5 個介於 0 到 1 的機率,各對應一種動物

  • 以 0.5 作為閾值進行分類:

    • 值 ≥ 0.5 則類別 = 1(哺乳類)(0.51880.5015
    • 值 < 0.5 則類別 = 0(非哺乳類)(0.37610.37180.4633
使用 PyTorch 的深度學習入門

多類別分類:前向傳遞

  • 類別 1:哺乳類,類別 2:鳥類,類別 3:爬行類
n_classes = 3


# Create multi-class classification model model = nn.Sequential( nn.Linear(6, 4), # First linear layer nn.Linear(4, n_classes), # Second linear layer
nn.Softmax(dim=-1) # Softmax activation )
# Pass input data through model output = model(input_data) print(output.shape)
torch.Size([5, 3])
使用 PyTorch 的深度學習入門

多類別分類:前向傳遞

multiclass.jpg

  • 每一列加總為 1
  • 預測標籤=機率最高的類別
  • 第 1 列=類別 1(哺乳類),第 2 列=類別 1(哺乳類),第 3 列=類別 3(爬行類)
使用 PyTorch 的深度學習入門

迴歸:前向傳遞

# Create regression model
model = nn.Sequential(
  nn.Linear(6, 4), # First linear layer
  nn.Linear(4, 1) # Second linear layer
)

# Pass input data through model
output = model(input_data)

# Return output
print(output)
tensor([[0.3818],
        [0.0712],
        [0.3376],
        [0.0231],
        [0.0757]], 
        grad_fn=<AddmmBackward0>)
使用 PyTorch 的深度學習入門

一起來練習吧!

使用 PyTorch 的深度學習入門

Preparing Video For Download...