301 次瀏覽
要定義一個簡單的卷積神經網路 (CNN),我們可以使用以下步驟:步驟首先,我們匯入重要的庫和包。我們嘗試在 PyTorch 中實現一個簡單的 CNN。在以下所有示例中,所需的 Python 庫是 torch。確保您已安裝它。import torch import torch.nn as nn import torch.nn.functional as F我們的下一步是構建一個簡單的 CNN 模型。在這裡,我們使用 nn 包來實現我們的模型。為此,我們定義一個類 MyNet 並將 nn.Module 作為引數傳遞。class MyNet(nn.Module):我們需要在類中建立兩個函式來… 閱讀更多
468 次瀏覽
要定義一個簡單的人工神經網路 (ANN),我們可以使用以下步驟:步驟首先,我們匯入重要的庫和包。我們嘗試在 PyTorch 中實現一個簡單的 ANN。在以下所有示例中,所需的 Python 庫是 torch。確保您已安裝它。import torch import torch.nn as nn我們的下一步是構建一個簡單的 ANN 模型。在這裡,我們使用 nn 包來實現我們的模型。為此,我們定義一個類 MyNetwork 並將 nn.Module 作為引數傳遞。class MyNetwork(nn.Module):我們需要在類中建立兩個函式來使我們的模型準備就緒… 閱讀更多
725 次瀏覽
Pytorch 中有很多與計算機視覺任務相關的資料集。torch.utils.data.Dataset 提供不同型別的資料集。torchvision.datasets 是 torch.utils.data.Dataset 的一個子類,並且有許多與影像和影片相關的資料集。PyTorch 還為我們提供了一個 torch.utils.data.DataLoader,它用於從資料集中載入多個樣本。步驟我們可以使用以下步驟來載入計算機視覺資料集:匯入所需的庫。在以下所有示例中,所需的 Python 庫是 torch、Matplotlib 和 torchvision。確保您已安裝它們。import torch import torchvision from torchvision import datasets from torchvision.transforms import ToTensor import matplotlib.pyplot as … 閱讀更多
1K+ 次瀏覽
我們應用 BCELoss() 方法來計算輸入和目標(預測和實際)機率之間的二元交叉熵損失。BCELoss() 可從 torch.nn 模組訪問。它建立一個度量二元交叉熵損失的標準。它是 torch.nn 模組提供的損失函式的一種型別。損失函式用於透過最小化損失來最佳化深度神經網路。輸入和目標都應該是具有類機率的 torch 張量。確保目標介於 0 和 1 之間。輸入和目標張量都可以具有任意數量的維度。… 閱讀更多
910 次瀏覽
將輸入張量的一些隨機元素設為零已被證明是在神經網路訓練期間進行正則化的有效技術。為了完成此任務,我們可以應用 torch.nn.Dropout()。它將輸入張量的一些元素歸零。元素將以給定的機率 p 歸零。它使用伯努利分佈來獲取元素被歸零的樣本。它不支援複數值輸入。語法torch.nn.Dropout(p=0.5)元素歸零的預設機率設定為 0.5步驟我們可以使用以下步驟來隨機歸零輸入的一些元素… 閱讀更多
2K+ 次瀏覽
我們可以重新縮放 n 維輸入張量,使其元素位於 [0, 1] 範圍內且總和為 1。為此,我們可以應用 Softmax() 函式。我們可以沿特定維度重新縮放 n 維輸入張量。輸出張量的尺寸與輸入張量相同。語法torch.nn.Softmax(dim)引數dim – 計算 Softmax 的維度。步驟我們可以使用以下步驟來在給定大小的隨機位置裁剪影像:匯入所需的庫。在以下所有示例中,所需的 Python 庫是 torch。確保您已安裝它。import … 閱讀更多
3K+ 次瀏覽
要在輸入張量上逐元素應用修正線性單元 (ReLU) 函式,我們使用 torch.nn.ReLU()。它將輸入張量中的所有負元素替換為 0(零),所有非負元素保持不變。它只支援實值輸入張量。ReLU 用作神經網路中的啟用函式。語法relu = torch.nn.ReLU() output = relu(input)步驟您可以使用以下步驟逐元素應用修正線性單元 (ReLU) 函式:匯入所需的庫。在以下所有示例中,所需的 Python 庫是 torch。確保您已安裝它。import torch import torch.nn as nn定義輸入張量… 閱讀更多
我們可以使用 torch.nn.AvgPool2d() 模組對由多個輸入平面組成的輸入影像應用二維平均池化。二維平均池化層的輸入必須為 [N, C, H, W] 大小,其中 N 是批次大小,C 是通道數,H 和 W 是輸入影像的高度和寬度。平均池化操作的主要特徵是過濾器或核心大小和步幅。此模組支援 TensorFloat32。語法torch.nn.AvgPool2d(kernel_size)引數kernel_size – 平均值的視窗大小。除了此引數之外,還有一些可選引數… 閱讀更多
463 次瀏覽
torch.nn.ConstantPad2D() 用常數值填充輸入張量的邊界。輸入張量的大小必須為 3D 或 4D,分別為 (C, H, W) 或 (N, C, H, W) 格式。其中 N、C、H、W 分別表示小批次大小、通道數、高度和寬度。填充沿輸入張量的高度和寬度進行。它以填充大小 (padding) 和常數值 (value) 作為引數。填充大小可以是整數或元組。填充對於所有邊界可以相同,也可以對於每個邊界不同… 閱讀更多
torch.nn.ZeroPad2D() 用零填充輸入張量的邊界。它以填充大小 (padding) 作為引數。填充大小可以是整數或元組。填充對於所有邊界可以相同,也可以對於每個邊界不同。填充可以是 (left, right, top, bottom) 格式的整數或元組。如果它是整數,則所有邊界的填充相同。填充張量的高度增加 top+bottom,而填充張量的寬度增加 left+right。它不會改變通道… 閱讀更多