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

PyTorch入門(mén)學(xué)習(xí)(十二):神經(jīng)網(wǎng)絡(luò)-搭建小實(shí)戰(zhàn)和Sequential的使用

這篇具有很好參考價(jià)值的文章主要介紹了PyTorch入門(mén)學(xué)習(xí)(十二):神經(jīng)網(wǎng)絡(luò)-搭建小實(shí)戰(zhàn)和Sequential的使用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

一、介紹

二、先決條件

三、代碼解釋


一、介紹

在深度學(xué)習(xí)領(lǐng)域,構(gòu)建復(fù)雜的神經(jīng)網(wǎng)絡(luò)模型可能是一項(xiàng)艱巨的任務(wù),尤其是當(dāng)您有許多層和操作需要組織時(shí)。幸運(yùn)的是,PyTorch提供了一個(gè)方便的工具,稱(chēng)為Sequential API,它簡(jiǎn)化了神經(jīng)網(wǎng)絡(luò)架構(gòu)的構(gòu)建過(guò)程。在本文中,將探討如何使用Sequential API構(gòu)建一個(gè)用于圖像分類(lèi)的卷積神經(jīng)網(wǎng)絡(luò)(CNN)。接下來(lái)將詳細(xì)探討每部分代碼,并討論每個(gè)組件,并清楚地了解如何在項(xiàng)目中充分利用PyTorch的Sequential API。

二、先決條件

  • 對(duì)神經(jīng)網(wǎng)絡(luò)和PyTorch有基本了解。
  • 安裝了PyTorch的Python環(huán)境。

三、代碼解釋

import torch
from torch import nn
from torch.nn import Conv2d, MaxPool2d, Flatten, Linear, Sequential
from torch.utils.tensorboard import SummaryWriter

在此代碼片段中,導(dǎo)入了必要的庫(kù),包括PyTorch及其用于神經(jīng)網(wǎng)絡(luò)操作的模塊,以及用于TensorBoard可視化的SummaryWriter。

class Tudui(nn.Module):
    def __init__(self):
        super(Tudui, self).__init__()
        self.model1 = Sequential(
            Conv2d(3, 32, 5, padding=2),
            MaxPool2d(2),
            Conv2d(32, 32, 5, padding=2),
            MaxPool2d(2),
            Conv2d(32, 64, 5, padding=2),
            MaxPool2d(2),
            Flatten(),
            Linear(1024, 64),
            Linear(64, 10),
        )

Tudui類(lèi)定義了神經(jīng)網(wǎng)絡(luò)模型。并使用Sequential API創(chuàng)建一系列層和操作,而不是逐一定義每個(gè)層并分別管理它們。在這種情況下,我們有三個(gè)卷積層,每個(gè)卷積層后跟一個(gè)最大池化層。然后,將輸出展平并添加兩個(gè)全連接(線性)層。這些層是按順序定義的,使代碼更加簡(jiǎn)明和可讀。

    def forward(self, x):
        x = self.model1(x)
        return x

forward方法中,通過(guò)模型構(gòu)造函數(shù)傳遞輸入張量x。由于層在self.model1中按順序組織,并不需要在前向傳遞中單獨(dú)調(diào)用每個(gè)層。這簡(jiǎn)化了代碼并增強(qiáng)了其清晰度。

tudui = Tudui()

創(chuàng)建了Tudui模型的一個(gè)實(shí)例。

input = torch.ones((64, 3, 32, 32))
output = tudui(input)

生成一個(gè)形狀為(64, 3, 32, 32)的示例輸入張量,并將其通過(guò)模型傳遞以獲得輸出。

writer = SummaryWriter("logs")
writer.add_graph(tudui, input)
writer.close()

為了使用TensorBoard可視化模型的架構(gòu)和計(jì)算圖,所以創(chuàng)建了一個(gè)SummaryWriter并添加了圖形。這一步對(duì)于調(diào)試和理解數(shù)據(jù)流經(jīng)網(wǎng)絡(luò)的過(guò)程非常有價(jià)值。

完整代碼如下:

"""
輸入大小為3*32*32
經(jīng)過(guò)3次【5*5卷積核卷積-2*2池化核池化】操作后,輸出為64*4*4大小
展平后為1*1024大小
經(jīng)過(guò)全連接層后輸出為1*10
"""
import torch
from torch import nn
from torch.nn import Conv2d, MaxPool2d, Flatten, Linear, Sequential
from torch.utils.tensorboard import SummaryWriter

class Tudui(nn.Module):
    def __init__(self):
        super(Tudui,self).__init__()
        # self.conv1 = Conv2d(3,32,5,padding=2)
        #         # self.maxpool1 = MaxPool2d(2)
        #         # self.conv2 = Conv2d(32,32,5,padding=2)
        #         # self.maxpool2 = MaxPool2d(2)
        #         # self.conv3 = Conv2d(32,64,5,padding=2)
        #         # self.maxpool3 = MaxPool2d(2)
        #         # self.flatten = Flatten()
        #         # self.linear1 = Linear(1024,64)
        #         # self.linear2 = Linear(64,10)
# 構(gòu)建一個(gè)序列化的container,可以把想要在神經(jīng)網(wǎng)絡(luò)中添加的操作都放進(jìn)去,按順序進(jìn)行執(zhí)行。
        self.model1 =Sequential(
            Conv2d(3, 32, 5, padding=2),
            MaxPool2d(2),
            Conv2d(32, 32, 5, padding=2),
            MaxPool2d(2),
            Conv2d(32, 64, 5, padding=2),
            MaxPool2d(2),
            Flatten(),
            Linear(1024, 64),
            Linear(64, 10),
        )
    """
    可以看到上面神經(jīng)網(wǎng)絡(luò)進(jìn)行搭建時(shí)非常繁瑣,在init中進(jìn)行了多個(gè)操作的定以后需要在forward中逐次進(jìn)行調(diào)用,
    因此我們使用sequential方法,在init方法中直接定義一個(gè)model,然后在下面的forward方法中直接使用一次model即可。
    """
    def forward(self,x):
        # x = self.conv1(x)
        # x = self.maxpool1(x)
        # x = self.conv2(x)
        # x = self.maxpool2(x)
        # x = self.conv3(x)
        # x = self.maxpool3(x)
        # x = self.flatten(x)
        # x = self.linear1(x)
        # x = self.linear2(x)

        x = self.model1(x)
        return x



tudui = Tudui()
print(tudui)
input = torch.ones((64,3,32,32))
output = tudui(input)
print(output.shape)

writer = SummaryWriter("logs")
writer.add_graph(tudui,input)
writer.close()

參考資料:

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

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

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

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

相關(guān)文章

  • PyTorch入門(mén)學(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 類(lèi)創(chuàng)建自定義神經(jīng)網(wǎng)絡(luò)模型。本文將演示如何創(chuàng)建一個(gè)簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)骨架并執(zhí)行前向傳播操作。 二、創(chuàng)建神經(jīng)網(wǎng)絡(luò)骨架 首先,導(dǎo)入PyTorch庫(kù)并創(chuàng)建

    2024年02月08日
    瀏覽(23)
  • PyTorch入門(mén)學(xué)習(xí)(十):神經(jīng)網(wǎng)絡(luò)-非線性激活

    目錄 一、簡(jiǎn)介 二、常見(jiàn)的非線性激活函數(shù) 三、實(shí)現(xiàn)非線性激活函數(shù) 四、示例:應(yīng)用非線性激活函數(shù) 一、簡(jiǎn)介 在神經(jīng)網(wǎng)絡(luò)中,激活函數(shù)的主要目的是引入非線性特性,從而使網(wǎng)絡(luò)能夠?qū)Ψ蔷€性數(shù)據(jù)建模。如果只使用線性變換,那么整個(gè)神經(jīng)網(wǎng)絡(luò)就會(huì)退化為一個(gè)線性模型,因

    2024年02月06日
    瀏覽(21)
  • 學(xué)習(xí)pytorch13 神經(jīng)網(wǎng)絡(luò)-搭建小實(shí)戰(zhàn)&Sequential的使用

    學(xué)習(xí)pytorch13 神經(jīng)網(wǎng)絡(luò)-搭建小實(shí)戰(zhàn)&Sequential的使用

    B站小土堆pytorch視頻學(xué)習(xí) https://pytorch.org/docs/stable/generated/torch.nn.Sequential.html#torch.nn.Sequential sequential 將模型結(jié)構(gòu)組合起來(lái) 以逗號(hào)分割,按順序執(zhí)行,和compose使用方式類(lèi)似。 箭頭指向部分還需要一層flatten層,展開(kāi)輸入shape為一維 tensorboard 展示圖文件, 雙擊每層網(wǎng)絡(luò),可查看層

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

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

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

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

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

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

    2024年02月13日
    瀏覽(59)
  • 深度學(xué)習(xí)圖像分類(lèi)實(shí)戰(zhàn)——pytorch搭建卷積神經(jīng)網(wǎng)絡(luò)(AlexNet, LeNet, ResNet50)進(jìn)行場(chǎng)景圖像分類(lèi)(詳細(xì))

    深度學(xué)習(xí)圖像分類(lèi)實(shí)戰(zhàn)——pytorch搭建卷積神經(jīng)網(wǎng)絡(luò)(AlexNet, LeNet, ResNet50)進(jìn)行場(chǎng)景圖像分類(lèi)(詳細(xì))

    目錄 1??一、實(shí)驗(yàn)過(guò)程 1.1??實(shí)驗(yàn)?zāi)康?1.2??實(shí)驗(yàn)簡(jiǎn)介 1.3??數(shù)據(jù)集的介紹 1.4??一、LeNet5網(wǎng)絡(luò)模型 1.5??二、AlexNet網(wǎng)絡(luò)模型 1.6??三、ResNet50(殘差網(wǎng)絡(luò))網(wǎng)絡(luò)模型 ?二、實(shí)驗(yàn)代碼 導(dǎo)入實(shí)驗(yàn)所需要的庫(kù) ?參數(shù)配置 數(shù)據(jù)預(yù)處理 重新DataSet 加載數(shù)據(jù)轉(zhuǎn)為DataLoader函數(shù) 可視化一批訓(xùn)練

    2024年02月05日
    瀏覽(28)
  • Matlab深度學(xué)習(xí)入門(mén)實(shí)例:從0搭建卷積神經(jīng)網(wǎng)絡(luò)CNN(附完整代碼)

    Matlab深度學(xué)習(xí)入門(mén)實(shí)例:從0搭建卷積神經(jīng)網(wǎng)絡(luò)CNN(附完整代碼)

    網(wǎng)上已具有大量卷積神經(jīng)網(wǎng)絡(luò)的講解,故本文不在對(duì)此贅述,這篇文章針對(duì)已了解CNN基礎(chǔ)結(jié)構(gòu)和原理者,以一個(gè)例子搭建一個(gè)簡(jiǎn)單的卷積神經(jīng)網(wǎng)絡(luò),作為正式邁入深度學(xué)習(xí)的第一步。 我們以深度學(xué)習(xí)最經(jīng)典的案例——手寫(xiě)數(shù)字的識(shí)別,和一種經(jīng)典的CNN——LeNet進(jìn)行本次學(xué)習(xí)。

    2024年02月01日
    瀏覽(32)
  • 【Pytorch】神經(jīng)網(wǎng)絡(luò)搭建

    【Pytorch】神經(jīng)網(wǎng)絡(luò)搭建

    在之前我們學(xué)習(xí)了如何用Pytorch去導(dǎo)入我們的數(shù)據(jù)和數(shù)據(jù)集,并且對(duì)數(shù)據(jù)進(jìn)行預(yù)處理。接下來(lái)我們就需要學(xué)習(xí)如何利用Pytorch去構(gòu)建我們的神經(jīng)網(wǎng)絡(luò)了。 目錄 基本網(wǎng)絡(luò)框架Module搭建 卷積層 從conv2d方法了解原理 從Conv2d方法了解使用 池化層 填充層 非線性層 線性層 Pytorch里面有一

    2023年04月17日
    瀏覽(19)
  • PyTorch 神經(jīng)網(wǎng)絡(luò)搭建模板

    在 PyTorch 中, Dataset 和 DataLoader 是用來(lái)處理數(shù)據(jù)的重要工具。它們的作用分別如下: Dataset : Dataset 用于存儲(chǔ)數(shù)據(jù)樣本及其對(duì)應(yīng)的標(biāo)簽。在使用神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí),通常需要將原始數(shù)據(jù)集轉(zhuǎn)換為 Dataset 對(duì)象,以便能夠通過(guò) DataLoader 進(jìn)行批量讀取數(shù)據(jù),同時(shí)也可以方便地進(jìn)行數(shù)據(jù)

    2023年04月08日
    瀏覽(18)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包