国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

PyTorch入門學(xué)習(xí)(十):神經(jīng)網(wǎng)絡(luò)-非線性激活

這篇具有很好參考價(jià)值的文章主要介紹了PyTorch入門學(xué)習(xí)(十):神經(jīng)網(wǎng)絡(luò)-非線性激活。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

一、簡介

二、常見的非線性激活函數(shù)

三、實(shí)現(xiàn)非線性激活函數(shù)

四、示例:應(yīng)用非線性激活函數(shù)


一、簡介

在神經(jīng)網(wǎng)絡(luò)中,激活函數(shù)的主要目的是引入非線性特性,從而使網(wǎng)絡(luò)能夠?qū)Ψ蔷€性數(shù)據(jù)建模。如果只使用線性變換,那么整個神經(jīng)網(wǎng)絡(luò)就會退化為一個線性模型,因?yàn)榫€性函數(shù)的組合仍然是線性的。非線性激活函數(shù)通過引入非線性性質(zhì),使神經(jīng)網(wǎng)絡(luò)能夠適應(yīng)更復(fù)雜的數(shù)據(jù)。

二、常見的非線性激活函數(shù)

ReLU(Rectified Linear Unit)

ReLU 是一種廣泛使用的非線性激活函數(shù)。它的數(shù)學(xué)表達(dá)式如下:

f(x) = max(0, x)

ReLU 將小于零的輸入值設(shè)為零,而大于零的輸入值保持不變。這種性質(zhì)使得神經(jīng)網(wǎng)絡(luò)能夠?qū)W習(xí)到稀疏特征,加速訓(xùn)練,以及更好地處理梯度消失問題。在 PyTorch 中,可以使用 torch.nn.ReLU() 實(shí)現(xiàn) ReLU 激活。

Sigmoid 函數(shù)

Sigmoid 函數(shù)是另一種非線性激活函數(shù),它的數(shù)學(xué)表達(dá)式如下:

f(x) = 1 / (1 + exp(-x))

Sigmoid 函數(shù)將輸入值映射到 0 到 1 之間,它在二元分類問題中廣泛使用。然而,Sigmoid 函數(shù)在深度神經(jīng)網(wǎng)絡(luò)中容易出現(xiàn)梯度消失問題。在 PyTorch 中,可以使用 torch.nn.Sigmoid() 實(shí)現(xiàn) Sigmoid 激活。

三、實(shí)現(xiàn)非線性激活函數(shù)

在 PyTorch 中,實(shí)現(xiàn)非線性激活函數(shù)非常簡單。首先定義一個繼承自 nn.Module 的類,然后在 forward 方法中應(yīng)用所需的激活函數(shù)。下面是一個使用 ReLU 和 Sigmoid 激活函數(shù)的示例:

import torch
from torch import nn
from torch.nn import ReLU, Sigmoid

class MyModel(nn.Module):
    def __init__(self):
        super(MyModel, self).__init()
        self.relu = ReLU()
        self.sigmoid = Sigmoid()

    def forward(self, x):
        x_relu = self.relu(x)
        x_sigmoid = self.sigmoid(x)
        return x_relu, x_sigmoid

在上面的示例中,首先導(dǎo)入必要的庫,然后定義了一個自定義模型 MyModel,它包含了 ReLU 和 Sigmoid 激活函數(shù)。在 forward 方法中,分別應(yīng)用了這兩個激活函數(shù)。

四、示例:應(yīng)用非線性激活函數(shù)

下面將看到一個具體的示例,把非線性激活函數(shù)應(yīng)用于圖像數(shù)據(jù)。然后使用 PyTorch 和 CIFAR-10 數(shù)據(jù)集,這是一個廣泛使用的圖像分類數(shù)據(jù)集。最后使用 ReLU 和 Sigmoid 激活函數(shù),并使用 TensorBoard 可視化結(jié)果。

import torch
from torch import nn
from torch.nn import ReLU, Sigmoid
from torch.utils.tensorboard import SummaryWriter
from torch.utils.data import DataLoader
import torchvision.datasets

# 加載 CIFAR-10 數(shù)據(jù)集
dataset = torchvision.datasets.CIFAR10("D:\\Python_Project\\pytorch\\dataset2", train=False, transform=torchvision.transforms.ToTensor(), download=True)
dataloader = DataLoader(dataset, batch_size=64)

# 定義自定義模型
class MyModel(nn.Module):
    def __init__(self):
        super(MyModel, self).__init__()
        self.relu = ReLU()
        self.sigmoid = Sigmoid()

    def forward(self, x):
        x_relu = self.relu(x)
        x_sigmoid = self.sigmoid(x)
        return x_relu, x_sigmoid

# 創(chuàng)建模型實(shí)例和 TensorBoard 編寫器
model = MyModel()
writer = SummaryWriter("logs")
step = 0

# 遍歷數(shù)據(jù)集并應(yīng)用模型
for data in dataloader:
    imgs, targets = data
    output_relu, output_sigmoid = model(imgs)
    writer.add_images("input", imgs, step)
    writer.add_images("output_relu", output_relu, step)
    writer.add_images("output_sigmoid", output_sigmoid, step)
    step += 1

writer.close()

在上面的示例中,首先加載 CIFAR-10 數(shù)據(jù)集,然后定義了一個自定義模型 MyModel,其中包含了 ReLU 和 Sigmoid 激活函數(shù)。遍歷數(shù)據(jù)集,將輸入圖像和經(jīng)過激活函數(shù)處理后的輸出圖像寫入 TensorBoard,以便進(jìn)行可視化。

通過這個示例,可以看到非線性激活函數(shù)如何改變輸入數(shù)據(jù),引入非線性特性,從而增強(qiáng)神經(jīng)網(wǎng)絡(luò)的建模能力。

參考資料:

視頻教程:PyTorch深度學(xué)習(xí)快速入門教程(絕對通俗易懂?。拘⊥炼选?span toymoban-style="hidden">文章來源地址http://www.zghlxwxcb.cn/news/detail-736216.html

到了這里,關(guān)于PyTorch入門學(xué)習(xí)(十):神經(jīng)網(wǎng)絡(luò)-非線性激活的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • PyTorch入門學(xué)習(xí)(八):神經(jīng)網(wǎng)絡(luò)-卷積層

    目錄 一、數(shù)據(jù)準(zhǔn)備 二、創(chuàng)建卷積神經(jīng)網(wǎng)絡(luò)模型 三、可視化卷積前后的圖像 一、數(shù)據(jù)準(zhǔn)備 首先,需要準(zhǔn)備一個數(shù)據(jù)集來演示卷積層的應(yīng)用。在這個示例中,使用了CIFAR-10數(shù)據(jù)集,該數(shù)據(jù)集包含了10個不同類別的圖像數(shù)據(jù),用于分類任務(wù)。使用PyTorch的 torchvision 庫來加載CIFAR-1

    2024年02月07日
    瀏覽(30)
  • PyTorch入門學(xué)習(xí)(六):神經(jīng)網(wǎng)絡(luò)的基本骨架使用

    目錄 一、引言 二、創(chuàng)建神經(jīng)網(wǎng)絡(luò)骨架 三、執(zhí)行前向傳播 一、引言 神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)的基礎(chǔ)。在PyTorch中,可以使用 nn.Module 類創(chuàng)建自定義神經(jīng)網(wǎng)絡(luò)模型。本文將演示如何創(chuàng)建一個簡單的神經(jīng)網(wǎng)絡(luò)骨架并執(zhí)行前向傳播操作。 二、創(chuàng)建神經(jīng)網(wǎng)絡(luò)骨架 首先,導(dǎo)入PyTorch庫并創(chuàng)建

    2024年02月08日
    瀏覽(23)
  • PyTorch入門學(xué)習(xí)(九):神經(jīng)網(wǎng)絡(luò)-最大池化使用

    目錄 一、數(shù)據(jù)準(zhǔn)備 二、創(chuàng)建神經(jīng)網(wǎng)絡(luò)模型 三、可視化最大池化效果 一、數(shù)據(jù)準(zhǔn)備 首先,需要準(zhǔn)備一個數(shù)據(jù)集來演示最大池化層的應(yīng)用。在本例中,使用了CIFAR-10數(shù)據(jù)集,這是一個包含10個不同類別圖像的數(shù)據(jù)集,用于分類任務(wù)。我們使用PyTorch的 torchvision 庫來加載CIFAR-10數(shù)據(jù)

    2024年02月07日
    瀏覽(29)
  • Pytorch入門學(xué)習(xí)——快速搭建神經(jīng)網(wǎng)絡(luò)、優(yōu)化器、梯度計(jì)算

    Pytorch入門學(xué)習(xí)——快速搭建神經(jīng)網(wǎng)絡(luò)、優(yōu)化器、梯度計(jì)算

    我的代碼可以在我的Github找到 GIthub地址 https://github.com/QinghongShao-sqh/Pytorch_Study 因?yàn)樽罱型瑢W(xué)問我如何Nerf入門,這里就簡單給出一些我的建議: (1)基本的pytorch,機(jī)器學(xué)習(xí),深度學(xué)習(xí)知識,本文介紹的pytorch知識掌握也差不多. 機(jī)器學(xué)習(xí)、深度學(xué)習(xí)零基礎(chǔ)的話B站?吳恩達(dá)、

    2024年02月14日
    瀏覽(20)
  • PyTorch入門學(xué)習(xí)(十一):神經(jīng)網(wǎng)絡(luò)-線性層及其他層介紹

    目錄 一、簡介 二、PyTorch 中的線性層 三、示例:使用線性層構(gòu)建神經(jīng)網(wǎng)絡(luò) 四、常見的其他層 一、簡介 神經(jīng)網(wǎng)絡(luò)是由多個層組成的,每一層都包含了一組權(quán)重和一個激活函數(shù)。每層的作用是將輸入數(shù)據(jù)進(jìn)行變換,從而最終生成輸出。線性層是神經(jīng)網(wǎng)絡(luò)中的基本層之一,它執(zhí)

    2024年02月05日
    瀏覽(26)
  • PyTorch入門學(xué)習(xí)(十二):神經(jīng)網(wǎng)絡(luò)-搭建小實(shí)戰(zhàn)和Sequential的使用

    目錄 一、介紹 二、先決條件 三、代碼解釋 一、介紹 在深度學(xué)習(xí)領(lǐng)域,構(gòu)建復(fù)雜的神經(jīng)網(wǎng)絡(luò)模型可能是一項(xiàng)艱巨的任務(wù),尤其是當(dāng)您有許多層和操作需要組織時(shí)。幸運(yùn)的是,PyTorch提供了一個方便的工具,稱為Sequential API,它簡化了神經(jīng)網(wǎng)絡(luò)架構(gòu)的構(gòu)建過程。在本文中,將探

    2024年02月05日
    瀏覽(21)
  • 【AI】《動手學(xué)-深度學(xué)習(xí)-PyTorch版》筆記(十七):卷積神經(jīng)網(wǎng)絡(luò)入門

    我們在前面學(xué)習(xí)的多層感知機(jī)中,已經(jīng)認(rèn)識了全鏈接層,缺點(diǎn)很明顯,在稍微大點(diǎn)的網(wǎng)絡(luò)模型中,參數(shù)成指數(shù)級別增長。參數(shù)量很快就達(dá)到數(shù)十億,這樣的量級幾乎無法計(jì)算。為此科學(xué)家們想出一個減少參數(shù)的方法:卷積。 從全鏈接層到卷積的推論,使用如下兩個原則: 平

    2024年02月13日
    瀏覽(59)
  • pytorch神經(jīng)網(wǎng)絡(luò)入門代碼

    以下代碼測試正確率為:99.37%

    2024年02月20日
    瀏覽(21)
  • [pytorch入門] 6. 神經(jīng)網(wǎng)絡(luò)

    [pytorch入門] 6. 神經(jīng)網(wǎng)絡(luò)

    torch.nn: Containers:基本骨架 Convolution Layers: 卷積層 Pooling layers:池化層 Non-linear Activations (weighted sum, nonlinearity):非線性激活 Normalization Layers:正則化層 containers相對重要的一個類,主要給神經(jīng)網(wǎng)絡(luò)定義了一些骨架、一些結(jié)構(gòu),后面那些類都是要向骨架中填充的東西 里面有

    2024年01月25日
    瀏覽(52)
  • pytorch的卷積層池化層和非線性變化 和機(jī)器學(xué)習(xí)線性回歸

    pytorch的卷積層池化層和非線性變化 和機(jī)器學(xué)習(xí)線性回歸

    卷積層: ? 兩個輸出的情況 就會有兩個通道 可以改變通道數(shù)的 最簡單的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu): nn.Mudule就是繼承父類 super執(zhí)行的是 先執(zhí)行父類函數(shù)里面的 forward執(zhí)行的就是前向網(wǎng)絡(luò),就是往前推進(jìn)的,當(dāng)然也有反向轉(zhuǎn)播,那就是用來就gradient dicent了,求導(dǎo)計(jì)算了。 卷積后的結(jié)果展

    2024年02月07日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包