溫馨提示×

pytorch全連接層在前向傳播

小樊
101
2024-12-25 19:45:26
欄目: 深度學習

PyTorch中的全連接層(fully connected layer)通常用于將輸入向量轉換為具有特定數量輸出神經元的向量。在前向傳播期間,全連接層會接收輸入張量,執行矩陣乘法,并添加一個偏置向量,然后通過激活函數生成輸出張量。

下面是一個簡單的示例,展示了如何在PyTorch中實現全連接層的前向傳播:

import torch
import torch.nn as nn

# 定義一個簡單的全連接層
class FullyConnectedLayer(nn.Module):
    def __init__(self, input_size, output_size):
        super(FullyConnectedLayer, self).__init__()
        self.linear = nn.Linear(input_size, output_size)

    def forward(self, x):
        # 執行矩陣乘法和偏置加法
        out = self.linear(x)
        return out

# 創建一個全連接層的實例
input_size = 784  # 假設輸入是一個 28x28 的圖像
output_size = 10   # 輸出是一個包含 10 個類別的向量
fc_layer = FullyConnectedLayer(input_size, output_size)

# 創建一個隨機輸入張量
input_tensor = torch.randn(1, input_size)  # 批量大小為 1,輸入大小為 784

# 前向傳播
output_tensor = fc_layer(input_tensor)
print("Output tensor shape:", output_tensor.shape)  # 輸出形狀應為 [1, 10]

在這個示例中,我們首先定義了一個名為FullyConnectedLayer的類,該類繼承自nn.Module。我們在構造函數中初始化了一個線性層(nn.Linear),該層將輸入大小映射到輸出大小。在forward方法中,我們調用線性層來執行前向傳播。

接下來,我們創建了一個全連接層的實例,并使用一個隨機輸入張量進行前向傳播。最后,我們打印輸出張量的形狀,以驗證其是否符合預期。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女